### Part 1 code, figures and explanatory text goes here and in subsequent cells. Show all code.
# import libraries
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import scanpy as sc
import scipy as sp
import numpy as np
# reload our adata
adata2 = sc.read("adHW2.h5ad")
# id ribo and mt genes and score
adata2.var['mt']= adata2.var_names.str.startswith(("mt-"))
adata2.var['ribo'] = adata2.var_names.str.startswith(("Rps","Rpl"))
sc.pp.calculate_qc_metrics(adata2, qc_vars=['ribo', 'mt'], percent_top=None, log1p=False, inplace=True)
axs = sc.pl.violin(adata2, ['n_genes_by_counts', 'total_counts', 'pct_counts_mt', 'pct_counts_ribo'],jitter=0.4, multi_panel=True)
# remove bad cells, slightly different ribo threshold based on above violin plots, still 2% for doublets based off 10x rec
thresh = np.percentile(adata2.obs['total_counts'],98)
adata2 = adata2[adata2.obs['total_counts'] < thresh, :]
adata2 = adata2[adata2.obs['pct_counts_mt'] < 3, :]
adata2 = adata2[adata2.obs['pct_counts_ribo'] < 35, :]
axs = sc.pl.violin(adata2, ['n_genes_by_counts', 'total_counts', 'pct_counts_mt', 'pct_counts_ribo'],jitter=0.4, multi_panel=True)
# remove bad genes that are expressed in less than 5 cells
gThresh = 5
sc.pp.filter_genes(adata2, min_cells=gThresh)
Trying to set attribute `.var` of view, copying.
# get mt, ribo genes and Malat1 for removal
mito_genes = adata2.var_names.str.startswith('mt-')
ribo_genes = adata2.var_names.str.startswith(("Rpl","Rps"))
malat_gene = adata2.var_names.str.startswith("Malat1")
# remove em
remove = np.add(mito_genes, ribo_genes)
remove = np.add(remove, malat_gene)
keep = np.invert(remove)
# number of genes we are removing
print(len(keep) - np.count_nonzero(keep))
# remove these BAD genes
adata2 = adata2[:,keep].copy()
print("Number of genes: ", adata2.n_vars)
113 Number of genes: 16100
# normalize and log transform data
sc.pp.normalize_total(adata2, target_sum=1e4)
sc.pp.log1p(adata2)
# finding highly varaible genes
sc.pp.highly_variable_genes(adata2, min_mean=0.0125, max_mean=4, min_disp=0.25)
# scaling the gene expression
sc.pp.scale(adata2, max_value=10)
# computate dimensional reduction. PCA
sc.tl.pca(adata2, n_comps=100)
# show the PC plots
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2, ax=axs[0,0], show=False, size=10)
sc.pl.pca_scatter(adata2, components="1,3", ax=axs[0,1], show=False, size=10)
sc.pl.pca_scatter(adata2, components="2,3", ax=axs[1,0], show=False, size=10)
sc.pl.pca_scatter(adata2, components="1,4", ax=axs[1,1], show=False, size=10)
<AxesSubplot:xlabel='PC1', ylabel='PC4'>
# read in all gene lists
naive_genes = [x.strip() for x in open("genes_naive.csv")]
primed_genes = [x.strip() for x in open("genes_primed.csv")]
primitive_streak_genes = [x.strip() for x in open("genes_primitive_streak.csv")]
mesoderm_genes = [x.strip() for x in open("genes_mesoderm.csv")]
mef_genes = [x.strip() for x in open("genes_fibroblast.csv")]
# score them
sc.tl.score_genes(adata2, gene_list = naive_genes, score_name = "naive_genesets")
sc.tl.score_genes(adata2, gene_list = primed_genes, score_name = "primed_genesets")
sc.tl.score_genes(adata2, gene_list = primitive_streak_genes, score_name = "primitive_streak_genesets")
sc.tl.score_genes(adata2, gene_list = mesoderm_genes, score_name = "mesoderm_genesets")
sc.tl.score_genes(adata2, gene_list = mef_genes, score_name = "mef_genesets")
adata2.obs
| n_genes_by_counts | total_counts | total_counts_ribo | pct_counts_ribo | total_counts_mt | pct_counts_mt | naive_genesets | primed_genesets | primitive_streak_genesets | mesoderm_genesets | mef_genesets | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| AAAGGATCATCAGCTA | 6108 | 51696.0 | 11336.0 | 21.928196 | 1206.0 | 2.332869 | 1.462597 | -0.845355 | -0.765111 | -0.494201 | -0.234230 |
| AACAAGACAATGTTGC | 350 | 436.0 | 74.0 | 16.972477 | 10.0 | 2.293578 | -0.244778 | 1.872256 | 0.712677 | 1.919615 | 0.078509 |
| AACCATGTCAAACGTC | 6760 | 54390.0 | 12462.0 | 22.912300 | 704.0 | 1.294356 | -0.013375 | 0.157211 | 0.804586 | -0.276475 | 0.154296 |
| AAGAACACAGACCGCT | 4722 | 24134.0 | 3337.0 | 13.826966 | 255.0 | 1.056601 | -0.816085 | -0.790847 | -0.783636 | -0.307530 | 0.878109 |
| AAGTTCGTCATCCTAT | 6161 | 50670.0 | 10793.0 | 21.300571 | 648.0 | 1.278863 | 1.152509 | -0.663506 | -0.674499 | -0.529671 | -0.144185 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| TTTGATCGTAGAGGAA | 4326 | 19656.0 | 5002.0 | 25.447699 | 320.0 | 1.628002 | -0.058218 | 0.077178 | 1.065647 | -0.290813 | 0.040322 |
| TTTGGAGCAGGTTCCG | 5024 | 28978.0 | 5820.0 | 20.084202 | 484.0 | 1.670233 | 1.390481 | 0.166589 | -0.682212 | -0.368295 | -0.334538 |
| TTTGGTTTCCGAAATC | 5529 | 32798.0 | 7230.0 | 22.044027 | 448.0 | 1.365937 | -0.382303 | 0.334571 | 1.319141 | -0.113896 | 0.054865 |
| TTTGTTGCATCGGCCA | 5155 | 25648.0 | 5710.0 | 22.262945 | 321.0 | 1.251560 | 0.873649 | -0.905697 | -0.879065 | -0.510326 | 0.291981 |
| TTTGTTGCATGAGATA | 4216 | 17995.0 | 4590.0 | 25.507086 | 238.0 | 1.322590 | -0.825834 | -0.814138 | -0.725544 | -0.417323 | 0.339794 |
1987 rows × 11 columns
# plot pcas
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2, ax=axs[0,0], color = "mef_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2, components="1,3", ax=axs[0,1], color = "mef_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2, components="2,3", ax=axs[1,0], color = "mef_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2, components="1,4", ax=axs[1,1], color = "mef_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'mef_genesets'}, xlabel='PC1', ylabel='PC4'>
# remove all cells with mef genesets < 0
# note: you should pick the threshold that works the best for your dataset. Unfortunately, there is no golden threshold
adata2_refined = adata2[adata2.obs['mef_genesets'] < 0, :]
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2_refined, ax=axs[0,0], color = "mef_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,3", ax=axs[0,1], color = "mef_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="2,3", ax=axs[1,0], color = "mef_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,4", ax=axs[1,1], color = "mef_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'mef_genesets'}, xlabel='PC1', ylabel='PC4'>
adata2_refined.obs # mefs removed
| n_genes_by_counts | total_counts | total_counts_ribo | pct_counts_ribo | total_counts_mt | pct_counts_mt | naive_genesets | primed_genesets | primitive_streak_genesets | mesoderm_genesets | mef_genesets | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| AAAGGATCATCAGCTA | 6108 | 51696.0 | 11336.0 | 21.928196 | 1206.0 | 2.332869 | 1.462597 | -0.845355 | -0.765111 | -0.494201 | -0.234230 |
| AAGTTCGTCATCCTAT | 6161 | 50670.0 | 10793.0 | 21.300571 | 648.0 | 1.278863 | 1.152509 | -0.663506 | -0.674499 | -0.529671 | -0.144185 |
| AATCACGTCGACGACC | 5920 | 51203.0 | 13795.0 | 26.941782 | 506.0 | 0.988223 | 1.180865 | -0.918670 | -0.720854 | -0.226108 | -0.167448 |
| ACAAGCTAGTGTTCAC | 6578 | 54268.0 | 13539.0 | 24.948404 | 979.0 | 1.804010 | 2.070385 | -0.566424 | -0.680331 | -0.382433 | -0.201345 |
| ACATTTCCACCCAATA | 494 | 669.0 | 138.0 | 20.627802 | 0.0 | 0.000000 | -0.110276 | -0.376076 | -0.016581 | 0.353827 | -0.058090 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| TTTCGATGTGCGAACA | 6226 | 47202.0 | 11664.0 | 24.710817 | 746.0 | 1.580442 | -0.553922 | -0.035149 | 0.853431 | -0.111625 | -0.286409 |
| TTTCGATTCCCAAGCG | 5435 | 30923.0 | 7146.0 | 23.109013 | 398.0 | 1.287068 | -0.832274 | 0.272020 | 0.785349 | -0.468100 | -0.022966 |
| TTTGACTGTCACTTCC | 5767 | 35729.0 | 7860.0 | 21.998936 | 538.0 | 1.505780 | -0.604116 | -0.717059 | 0.734134 | 4.251657 | -0.161055 |
| TTTGACTGTGCGGATA | 4937 | 23234.0 | 5097.0 | 21.937677 | 326.0 | 1.403116 | -0.396972 | 0.327058 | 1.400823 | -0.116942 | -0.196782 |
| TTTGGAGCAGGTTCCG | 5024 | 28978.0 | 5820.0 | 20.084202 | 484.0 | 1.670233 | 1.390481 | 0.166589 | -0.682212 | -0.368295 | -0.334538 |
1466 rows × 11 columns
adata2_refined.write_h5ad('data_removeMEFs_after_clean.h5ad')
sum(adata2.obs['mef_genesets'] > 0) # # of mefs
521
# write the cell barcodes for the mef's to csv so we can remove them for part 6
pd.DataFrame(list(adata2[adata2.obs['mef_genesets'] > 0].obs.index)).to_csv('mef_cell_barcodes.csv')
mef_cell_barcodes = pd.read_csv('mef_cell_barcodes.csv', usecols=['0'])
mef_cell_barcodes['0']
0 AACAAGACAATGTTGC
1 AACCATGTCAAACGTC
2 AAGAACACAGACCGCT
3 AATTCCTCAGGACTTT
4 ACCCAAAAGATAACAC
...
516 TTTGACTAGGCGTCCT
517 TTTGATCGTAGAGGAA
518 TTTGGTTTCCGAAATC
519 TTTGTTGCATCGGCCA
520 TTTGTTGCATGAGATA
Name: 0, Length: 521, dtype: object
# prepare unprocessed adata with mef cell barcodes removed for part 6
unprocessed_adata = sc.read_h5ad('adHW2.h5ad')
print(len(unprocessed_adata.obs))
# we want to keep cells that are not in mef cell barcodes and write the unprocessed no mef data to a new h5ad file for use in pt6
unprocessed_adata[~unprocessed_adata.obs.index.isin(mef_cell_barcodes['0'])].write_h5ad('unprocessed_data_no_mefs_pt6.h5ad')
# difference should be length of mef_cell_barcodes, 2201-1707 = 521
print(len(unprocessed_adata[~unprocessed_adata.obs.index.isin(mef_cell_barcodes['0'])]))
2201 1680
# this is our processed, cleaned, data with mef's removed
adata2_refined.obs
| n_genes_by_counts | total_counts | total_counts_ribo | pct_counts_ribo | total_counts_mt | pct_counts_mt | naive_genesets | primed_genesets | primitive_streak_genesets | mesoderm_genesets | mef_genesets | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| AAAGGATCATCAGCTA | 6108 | 51696.0 | 11336.0 | 21.928196 | 1206.0 | 2.332869 | 1.462597 | -0.845355 | -0.765111 | -0.494201 | -0.234230 |
| AAGTTCGTCATCCTAT | 6161 | 50670.0 | 10793.0 | 21.300571 | 648.0 | 1.278863 | 1.152509 | -0.663506 | -0.674499 | -0.529671 | -0.144185 |
| AATCACGTCGACGACC | 5920 | 51203.0 | 13795.0 | 26.941782 | 506.0 | 0.988223 | 1.180865 | -0.918670 | -0.720854 | -0.226108 | -0.167448 |
| ACAAGCTAGTGTTCAC | 6578 | 54268.0 | 13539.0 | 24.948404 | 979.0 | 1.804010 | 2.070385 | -0.566424 | -0.680331 | -0.382433 | -0.201345 |
| ACATTTCCACCCAATA | 494 | 669.0 | 138.0 | 20.627802 | 0.0 | 0.000000 | -0.110276 | -0.376076 | -0.016581 | 0.353827 | -0.058090 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| TTTCGATGTGCGAACA | 6226 | 47202.0 | 11664.0 | 24.710817 | 746.0 | 1.580442 | -0.553922 | -0.035149 | 0.853431 | -0.111625 | -0.286409 |
| TTTCGATTCCCAAGCG | 5435 | 30923.0 | 7146.0 | 23.109013 | 398.0 | 1.287068 | -0.832274 | 0.272020 | 0.785349 | -0.468100 | -0.022966 |
| TTTGACTGTCACTTCC | 5767 | 35729.0 | 7860.0 | 21.998936 | 538.0 | 1.505780 | -0.604116 | -0.717059 | 0.734134 | 4.251657 | -0.161055 |
| TTTGACTGTGCGGATA | 4937 | 23234.0 | 5097.0 | 21.937677 | 326.0 | 1.403116 | -0.396972 | 0.327058 | 1.400823 | -0.116942 | -0.196782 |
| TTTGGAGCAGGTTCCG | 5024 | 28978.0 | 5820.0 | 20.084202 | 484.0 | 1.670233 | 1.390481 | 0.166589 | -0.682212 | -0.368295 | -0.334538 |
1466 rows × 11 columns
# computate dimensional reduction without the MEF's. PCA
sc.tl.pca(adata2_refined, n_comps=100)
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2_refined, ax=axs[0,0], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,3", ax=axs[0,1], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="2,3", ax=axs[1,0], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,4", ax=axs[1,1], color = "naive_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'naive_genesets'}, xlabel='PC1', ylabel='PC4'>
# remove all cells with naive genesets < 0
# note: you should pick the threshold that works the best for your dataset. Unfortunately, there is no golden threshold
adata2_refined_naive = adata2_refined[adata2_refined.obs['naive_genesets'] < 0, :]
# you can see that the cells with high naive gene expressions are now removed
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2_refined_naive, ax=axs[0,0], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined_naive, components="1,3", ax=axs[0,1], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined_naive, components="2,3", ax=axs[1,0], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined_naive, components="1,4", ax=axs[1,1], color = "naive_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'naive_genesets'}, xlabel='PC1', ylabel='PC4'>
# plot pc's but with primed genesets
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2_refined, ax=axs[0,0], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,3", ax=axs[0,1], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="2,3", ax=axs[1,0], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,4", ax=axs[1,1], color = "primed_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'primed_genesets'}, xlabel='PC1', ylabel='PC4'>
# remove all cells with primed genesets < 0
# note: you should pick the threshold that works the best for your dataset. Unfortunately, there is no golden threshold
adata2_refined_primed = adata2_refined[adata2_refined.obs['primed_genesets'] < 0, :]
# plot pc's but with primed genesets removed
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2_refined_primed, ax=axs[0,0], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined_primed, components="1,3", ax=axs[0,1], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined_primed, components="2,3", ax=axs[1,0], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined_primed, components="1,4", ax=axs[1,1], color = "primed_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'primed_genesets'}, xlabel='PC1', ylabel='PC4'>
# plot pc's but with primitive streak genesets
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2_refined, ax=axs[0,0], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,3", ax=axs[0,1], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="2,3", ax=axs[1,0], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,4", ax=axs[1,1], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'primitive_streak_genesets'}, xlabel='PC1', ylabel='PC4'>
# remove all cells with primitive streak genesets < 0
# note: you should pick the threshold that works the best for your dataset. Unfortunately, there is no golden threshold
adata2_refined_primitive_streak = adata2_refined[adata2_refined.obs['primitive_streak_genesets'] < 0, :]
# plot pc's but with primitive streak genesets removed
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2_refined_primitive_streak, ax=axs[0,0], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined_primitive_streak, components="1,3", ax=axs[0,1], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined_primitive_streak, components="2,3", ax=axs[1,0], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined_primitive_streak, components="1,4", ax=axs[1,1], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'primitive_streak_genesets'}, xlabel='PC1', ylabel='PC4'>
# plot pc's but with mesoderm genesets
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2_refined, ax=axs[0,0], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,3", ax=axs[0,1], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="2,3", ax=axs[1,0], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,4", ax=axs[1,1], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'mesoderm_genesets'}, xlabel='PC1', ylabel='PC4'>
# remove all cells with mesoderm genesets < 0
# note: you should pick the threshold that works the best for your dataset. Unfortunately, there is no golden threshold
adata2_refined_mesoderm = adata2_refined[adata2_refined.obs['mesoderm_genesets'] < 0, :]
# plot pc's but with mesoderm genesets removed
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2_refined_mesoderm, ax=axs[0,0], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined_mesoderm, components="1,3", ax=axs[0,1], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined_mesoderm, components="2,3", ax=axs[1,0], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined_mesoderm, components="1,4", ax=axs[1,1], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'mesoderm_genesets'}, xlabel='PC1', ylabel='PC4'>
# performs KNN neighbors and then leiden clustering
# note: there are no right or wrong parmaeters to choose when clustering. Just have to pick the ones that are reasonable and give reasonable results.
# would highly suggest playing with the parameters and see how the results differ
n_pcs = 20
n_neighbors = 15
sc.pp.neighbors(adata2_refined, n_neighbors=n_neighbors, n_pcs=n_pcs)
sc.tl.leiden(adata2_refined, .25)
adata2_refined.obs
| n_genes_by_counts | total_counts | total_counts_ribo | pct_counts_ribo | total_counts_mt | pct_counts_mt | naive_genesets | primed_genesets | primitive_streak_genesets | mesoderm_genesets | mef_genesets | leiden | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AAAGGATCATCAGCTA | 6108 | 51696.0 | 11336.0 | 21.928196 | 1206.0 | 2.332869 | 1.462597 | -0.845355 | -0.765111 | -0.494201 | -0.234230 | 2 |
| AAGTTCGTCATCCTAT | 6161 | 50670.0 | 10793.0 | 21.300571 | 648.0 | 1.278863 | 1.152509 | -0.663506 | -0.674499 | -0.529671 | -0.144185 | 2 |
| AATCACGTCGACGACC | 5920 | 51203.0 | 13795.0 | 26.941782 | 506.0 | 0.988223 | 1.180865 | -0.918670 | -0.720854 | -0.226108 | -0.167448 | 2 |
| ACAAGCTAGTGTTCAC | 6578 | 54268.0 | 13539.0 | 24.948404 | 979.0 | 1.804010 | 2.070385 | -0.566424 | -0.680331 | -0.382433 | -0.201345 | 2 |
| ACATTTCCACCCAATA | 494 | 669.0 | 138.0 | 20.627802 | 0.0 | 0.000000 | -0.110276 | -0.376076 | -0.016581 | 0.353827 | -0.058090 | 4 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| TTTCGATGTGCGAACA | 6226 | 47202.0 | 11664.0 | 24.710817 | 746.0 | 1.580442 | -0.553922 | -0.035149 | 0.853431 | -0.111625 | -0.286409 | 0 |
| TTTCGATTCCCAAGCG | 5435 | 30923.0 | 7146.0 | 23.109013 | 398.0 | 1.287068 | -0.832274 | 0.272020 | 0.785349 | -0.468100 | -0.022966 | 0 |
| TTTGACTGTCACTTCC | 5767 | 35729.0 | 7860.0 | 21.998936 | 538.0 | 1.505780 | -0.604116 | -0.717059 | 0.734134 | 4.251657 | -0.161055 | 3 |
| TTTGACTGTGCGGATA | 4937 | 23234.0 | 5097.0 | 21.937677 | 326.0 | 1.403116 | -0.396972 | 0.327058 | 1.400823 | -0.116942 | -0.196782 | 0 |
| TTTGGAGCAGGTTCCG | 5024 | 28978.0 | 5820.0 | 20.084202 | 484.0 | 1.670233 | 1.390481 | 0.166589 | -0.682212 | -0.368295 | -0.334538 | 2 |
1466 rows × 12 columns
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2_refined, ax=axs[0,0], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,3", ax=axs[0,1], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="2,3", ax=axs[1,0], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,4", ax=axs[1,1], color = "leiden", show=False, size=10, vmax = 1.5)
# the clusetrs here look like the correspond to the ones above but the purple one may be an outlier
# naive is green 2
# primed is orange 1
# primitive is blue 0
# mesoderm is red 3
<AxesSubplot:title={'center':'leiden'}, xlabel='PC1', ylabel='PC4'>
# making a new column in adata.obs dataframe and the assigning cell types
adata2_refined.obs['cell_type_label'] = None
adata2_refined.obs.loc[adata2_refined.obs['leiden'] == '0', 'cell_type_label'] = 'Primitive'
adata2_refined.obs.loc[adata2_refined.obs['leiden'] == '1', 'cell_type_label'] = 'Primed'
adata2_refined.obs.loc[adata2_refined.obs['leiden'] == '2', 'cell_type_label'] = 'Naive'
adata2_refined.obs.loc[adata2_refined.obs['leiden'] == '3', 'cell_type_label'] = 'Mesoderm'
adata2_refined.obs.loc[adata2_refined.obs['leiden'] == '4', 'cell_type_label'] = 'Other'
# replot with cell type classifiers, should be identical to previous plot but colors moved around
fig, axs = plt.subplots(2,2, figsize=(7,7), constrained_layout=True)
sc.pl.pca_scatter(adata2_refined, ax=axs[0,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,3", ax=axs[0,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="2,3", ax=axs[1,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,4", ax=axs[1,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
... storing 'cell_type_label' as categorical
<AxesSubplot:title={'center':'cell_type_label'}, xlabel='PC1', ylabel='PC4'>
# get predicted cell type labels as a csv
adata2_refined.obs['cell_type_label'].to_csv('cell_types_TA_method_clean_b4_mef_removal.csv')
# get counts of each cell type
adata2_refined.obs['cell_type_label'].value_counts()
Primitive 562 Primed 403 Naive 321 Mesoderm 145 Other 35 Name: cell_type_label, dtype: int64
# remove each cell type individually and replot to confirm we got the right ones
refined_adata_nonaive = adata2_refined[adata2_refined.obs['cell_type_label'] != "Naive", :]
refined_adata_noprimed = adata2_refined[adata2_refined.obs['cell_type_label'] != "Primed", :]
refined_adata_noprimitive = adata2_refined[adata2_refined.obs['cell_type_label'] != "Primitive", :]
refined_adata_nomesoderm = adata2_refined[adata2_refined.obs['cell_type_label'] != "Mesoderm", :]
# no naive
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(refined_adata_nonaive, ax=axs[0,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(refined_adata_nonaive, components="1,3", ax=axs[0,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(refined_adata_nonaive, components="2,3", ax=axs[1,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(refined_adata_nonaive, components="1,4", ax=axs[1,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'cell_type_label'}, xlabel='PC1', ylabel='PC4'>
# no primed
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(refined_adata_noprimed, ax=axs[0,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(refined_adata_noprimed, components="1,3", ax=axs[0,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(refined_adata_noprimed, components="2,3", ax=axs[1,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(refined_adata_noprimed, components="1,4", ax=axs[1,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'cell_type_label'}, xlabel='PC1', ylabel='PC4'>
# no primitive
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(refined_adata_noprimitive, ax=axs[0,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(refined_adata_noprimitive, components="1,3", ax=axs[0,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(refined_adata_noprimitive, components="2,3", ax=axs[1,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(refined_adata_noprimitive, components="1,4", ax=axs[1,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'cell_type_label'}, xlabel='PC1', ylabel='PC4'>
# no mesoderm
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(refined_adata_nomesoderm, ax=axs[0,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(refined_adata_nomesoderm, components="1,3", ax=axs[0,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(refined_adata_nomesoderm, components="2,3", ax=axs[1,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(refined_adata_nomesoderm, components="1,4", ax=axs[1,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'cell_type_label'}, xlabel='PC1', ylabel='PC4'>
# q4 cell cycle prediction
# read in the cell cycle genes as a list
cell_cycle_genes = [x.strip() for x in open("mouseCellCycle_050218.csv")]
# classify cell cycle genes for each part of the cell cycle
s_genes = cell_cycle_genes[:43]
g2m_genes = cell_cycle_genes[43:]
# now intersect these with genes present in the annData object
cell_cycle_genes = [x for x in cell_cycle_genes if x in adata2_refined.var_names]
print("n cc genes:", len(cell_cycle_genes))
n cc genes: 112
# reassign the genes for only the one present in the data, they all should be there tho
s_genes = [x for x in s_genes if x in adata2_refined.var_names]
g2m_genes = [x for x in g2m_genes if x in adata2_refined.var_names]
# score the genes based on these seperated cell cycle genes so we can make a pca
sc.tl.score_genes_cell_cycle(adata2_refined, s_genes=s_genes, g2m_genes=g2m_genes)
adata2_refined.obs
| n_genes_by_counts | total_counts | total_counts_ribo | pct_counts_ribo | total_counts_mt | pct_counts_mt | naive_genesets | primed_genesets | primitive_streak_genesets | mesoderm_genesets | mef_genesets | leiden | cell_type_label | S_score | G2M_score | phase | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AAAGGATCATCAGCTA | 6108 | 51696.0 | 11336.0 | 21.928196 | 1206.0 | 2.332869 | 1.462597 | -0.845355 | -0.765111 | -0.494201 | -0.234230 | 2 | Naive | 0.121245 | -0.180180 | S |
| AAGTTCGTCATCCTAT | 6161 | 50670.0 | 10793.0 | 21.300571 | 648.0 | 1.278863 | 1.152509 | -0.663506 | -0.674499 | -0.529671 | -0.144185 | 2 | Naive | 0.153964 | 0.117394 | S |
| AATCACGTCGACGACC | 5920 | 51203.0 | 13795.0 | 26.941782 | 506.0 | 0.988223 | 1.180865 | -0.918670 | -0.720854 | -0.226108 | -0.167448 | 2 | Naive | -0.406983 | 0.231144 | G2M |
| ACAAGCTAGTGTTCAC | 6578 | 54268.0 | 13539.0 | 24.948404 | 979.0 | 1.804010 | 2.070385 | -0.566424 | -0.680331 | -0.382433 | -0.201345 | 2 | Naive | -0.123072 | 0.221507 | G2M |
| ACATTTCCACCCAATA | 494 | 669.0 | 138.0 | 20.627802 | 0.0 | 0.000000 | -0.110276 | -0.376076 | -0.016581 | 0.353827 | -0.058090 | 4 | Other | -0.146778 | -0.585443 | G1 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| TTTCGATGTGCGAACA | 6226 | 47202.0 | 11664.0 | 24.710817 | 746.0 | 1.580442 | -0.553922 | -0.035149 | 0.853431 | -0.111625 | -0.286409 | 0 | Primitive | -0.078648 | -0.012066 | G1 |
| TTTCGATTCCCAAGCG | 5435 | 30923.0 | 7146.0 | 23.109013 | 398.0 | 1.287068 | -0.832274 | 0.272020 | 0.785349 | -0.468100 | -0.022966 | 0 | Primitive | -0.211332 | 0.406195 | G2M |
| TTTGACTGTCACTTCC | 5767 | 35729.0 | 7860.0 | 21.998936 | 538.0 | 1.505780 | -0.604116 | -0.717059 | 0.734134 | 4.251657 | -0.161055 | 3 | Mesoderm | -0.284396 | 0.486331 | G2M |
| TTTGACTGTGCGGATA | 4937 | 23234.0 | 5097.0 | 21.937677 | 326.0 | 1.403116 | -0.396972 | 0.327058 | 1.400823 | -0.116942 | -0.196782 | 0 | Primitive | 0.003583 | -0.001892 | S |
| TTTGGAGCAGGTTCCG | 5024 | 28978.0 | 5820.0 | 20.084202 | 484.0 | 1.670233 | 1.390481 | 0.166589 | -0.682212 | -0.368295 | -0.334538 | 2 | Naive | 0.329304 | 0.126793 | S |
1466 rows × 16 columns
# see how many cells are at each cell cycle stage
adata2_refined.obs['phase'].value_counts()
G2M 711 S 613 G1 142 Name: phase, dtype: int64
adata2_refined.obs['cell_type_label']
AAAGGATCATCAGCTA Naive
AAGTTCGTCATCCTAT Naive
AATCACGTCGACGACC Naive
ACAAGCTAGTGTTCAC Naive
ACATTTCCACCCAATA Other
...
TTTCGATGTGCGAACA Primitive
TTTCGATTCCCAAGCG Primitive
TTTGACTGTCACTTCC Mesoderm
TTTGACTGTGCGGATA Primitive
TTTGGAGCAGGTTCCG Naive
Name: cell_type_label, Length: 1466, dtype: category
Categories (5, object): ['Mesoderm', 'Naive', 'Other', 'Primed', 'Primitive']
print('S phase and Naive:',len(adata2_refined.obs[(adata2_refined.obs['phase'] =='S') & (adata2_refined.obs['cell_type_label'] == 'Naive')]))
print('S phase and Primed:',len(adata2_refined.obs[(adata2_refined.obs['phase'] =='S') & (adata2_refined.obs['cell_type_label'] == 'Primed')]))
print('S phase and Primitive:',len(adata2_refined.obs[(adata2_refined.obs['phase'] =='S') & (adata2_refined.obs['cell_type_label'] == 'Primitive')]))
print('S phase and Mesoderm:',len(adata2_refined.obs[(adata2_refined.obs['phase'] =='S') & (adata2_refined.obs['cell_type_label'] == 'Mesoderm')]))
print('S phase and Other:',len(adata2_refined.obs[(adata2_refined.obs['phase'] =='S') & (adata2_refined.obs['cell_type_label'] == 'Other')]))
print('G2M phase and Naive:',len(adata2_refined.obs[(adata2_refined.obs['phase'] =='G2M') & (adata2_refined.obs['cell_type_label'] == 'Naive')]))
print('G2M phase and Primed:',len(adata2_refined.obs[(adata2_refined.obs['phase'] =='G2M') & (adata2_refined.obs['cell_type_label'] == 'Primed')]))
print('G2M phase and Primitive:',len(adata2_refined.obs[(adata2_refined.obs['phase'] =='G2M') & (adata2_refined.obs['cell_type_label'] == 'Primitive')]))
print('G2M phase and Mesoderm:',len(adata2_refined.obs[(adata2_refined.obs['phase'] =='G2M') & (adata2_refined.obs['cell_type_label'] == 'Mesoderm')]))
print('G2M phase and Other:',len(adata2_refined.obs[(adata2_refined.obs['phase'] =='G2M') & (adata2_refined.obs['cell_type_label'] == 'Other')]))
S phase and Naive: 136 S phase and Primed: 184 S phase and Primitive: 238 S phase and Mesoderm: 48 S phase and Other: 7 G2M phase and Naive: 159 G2M phase and Primed: 193 G2M phase and Primitive: 270 G2M phase and Mesoderm: 78 G2M phase and Other: 11
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2_refined, ax=axs[0,0], color = "phase", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,3", ax=axs[0,1], color = "phase", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="2,3", ax=axs[1,0], color = "phase", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined, components="1,4", ax=axs[1,1], color = "phase", show=False, size=10, vmax = 1.5)
... storing 'phase' as categorical
<AxesSubplot:title={'center':'phase'}, xlabel='PC1', ylabel='PC4'>
# pca's of cells in S phase
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2_refined[adata2_refined.obs['phase'] == 'S'], ax=axs[0,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined[adata2_refined.obs['phase'] == 'S'], components="1,3", ax=axs[0,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined[adata2_refined.obs['phase'] == 'S'], components="2,3", ax=axs[1,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined[adata2_refined.obs['phase'] == 'S'], components="1,4", ax=axs[1,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'cell_type_label'}, xlabel='PC1', ylabel='PC4'>
# pca's of cells in G2M phase
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata2_refined[adata2_refined.obs['phase'] == 'G2M'], ax=axs[0,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined[adata2_refined.obs['phase'] == 'G2M'], components="1,3", ax=axs[0,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined[adata2_refined.obs['phase'] == 'G2M'], components="2,3", ax=axs[1,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata2_refined[adata2_refined.obs['phase'] == 'G2M'], components="1,4", ax=axs[1,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'cell_type_label'}, xlabel='PC1', ylabel='PC4'>
# now we want to write a function that goes through all the columns (genes) in adata_x_df and runs pearcorr vs s and g2m scores in adata.obs
# returns a dictionary with genes asosciated with cell cycle phases S and G2M
# can specify the pearcorr threshold and whether we want novel genes only or not
def get_cc_genes(adata, given_cc_genes = [], pthresh = 0.45, novel = True):
# convert adata.X to a df with column names as genes and index as cell labels so it can easily be compared to adata.obs and adata.vars
adata_x_df = adata.to_df()
# dictionary to store all identified cc genes
found_cc_genes = {'S': [], 'G2M': []} # is it possible for a gene to associated with both ?
# here we iterate through all the genes and perform pearcorr
# add all the ones that are above the threshold for each phase of the cell cycle
for gene in list(adata_x_df.columns):
if(sp.stats.pearsonr(adata_x_df[gene], adata.obs['S_score'])[0] > pthresh): # index zero to get pearson coeff
found_cc_genes['S'].append(gene)
if(sp.stats.pearsonr(adata_x_df[gene], adata.obs['G2M_score'])[0] > pthresh): # index zero to get pearson coeff
found_cc_genes['G2M'].append(gene)
if novel:
# only keep the ones that are NOT in the predefined list
found_cc_genes['S'] = list(set(found_cc_genes['S']) - set(given_cc_genes))
found_cc_genes['G2M'] = list(set(found_cc_genes['G2M']) - set(given_cc_genes))
return found_cc_genes
# run our function with novel true and false
novel_cc_genes = get_cc_genes(adata2_refined, cell_cycle_genes, novel = True)
found_cc_genes = get_cc_genes(adata2_refined, cell_cycle_genes, novel = False)
/Users/kevin/opt/anaconda3/lib/python3.8/site-packages/scipy/stats/stats.py:3508: PearsonRConstantInputWarning: An input array is constant; the correlation coefficent is not defined. warnings.warn(PearsonRConstantInputWarning())
# check to see if there is any overlap, outputs the overlap
list(set(found_cc_genes['S']) & set(found_cc_genes['G2M']))
[]
# check to see if there is any overlap, outputs the overlap
list(set(novel_cc_genes['S']) & set(novel_cc_genes['G2M']))
[]
found_cc_genes # all found cc genes above the pearson corr threshold of 0.45
{'S': ['Mcm6',
'Cdc6',
'Rrm2',
'Chaf1b',
'Pcna',
'Rpa2',
'Ung',
'Ccne1',
'Mcm5',
'Tipin'],
'G2M': ['Cenpf',
'Sgo2a',
'Cdk1',
'Hmmr',
'Top2a',
'Jpt1',
'Aurkb',
'Birc5',
'Mis18bp1',
'Ccnb1',
'Cks2',
'Cdca2',
'Racgap1',
'Tuba1c',
'Ccnf',
'Kif20a',
'Incenp',
'Kif20b',
'Kif11',
'Tubb4b',
'Ckap2l',
'Aurka',
'Nusap1',
'Tpx2',
'Fam83d',
'Ube2c',
'Smc4',
'Cenpe',
'Kif2c',
'Cdc20',
'Cdca8',
'Smc2',
'Dbf4',
'Cenpa',
'Cdca3',
'Arl6ip1',
'Kif22',
'Mki67',
'Prc1',
'Plk1',
'Bub3',
'H2afx']}
novel_cc_genes # only the cc genes that are not in the list given to us
{'S': ['Ccne1'],
'G2M': ['Racgap1',
'Sgo2a',
'Incenp',
'Kif20a',
'Jpt1',
'Mis18bp1',
'Plk1',
'Prc1',
'Smc2',
'Arl6ip1',
'Kif22',
'Bub3',
'Ccnf',
'Fam83d',
'H2afx',
'Dbf4',
'Tuba1c']}
# now let's run on function on each cell type (stage of differentiation)
# first subset each diff type
naive_adata2_refined = adata2_refined[adata2_refined.obs['cell_type_label'] == 'Naive']
primed_adata2_refined = adata2_refined[adata2_refined.obs['cell_type_label'] == 'Primed']
primitive_streak_adata2_refined = adata2_refined[adata2_refined.obs['cell_type_label'] == 'Primitive']
mesoderm_adata2_refined = adata2_refined[adata2_refined.obs['cell_type_label'] == 'Mesoderm']
# run our function on each diff type subset
# default pthresh = 0.45 and novel = True
naive_novel_cc_genes = get_cc_genes(naive_adata2_refined, cell_cycle_genes)
primed_novel_cc_genes = get_cc_genes(primed_adata2_refined, cell_cycle_genes)
primitive_streak_novel_cc_genes = get_cc_genes(primitive_streak_adata2_refined, cell_cycle_genes)
mesoderm_novel_cc_genes = get_cc_genes(mesoderm_adata2_refined, cell_cycle_genes)
# outpur # of novel cc genes and the genes themself for each phase for each cell type (diff type)
print('Naive novel cc genes:', len(naive_novel_cc_genes['S']), 'new S genes;', len(naive_novel_cc_genes['G2M']), 'new G2M genes')
print(naive_novel_cc_genes)
print('')
print('Primed novel cc genes:', len(primed_novel_cc_genes['S']), 'new S genes;', len(primed_novel_cc_genes['G2M']), 'new G2M genes')
print(primed_novel_cc_genes)
print('')
print('Primitive streak novel cc genes:', len(primitive_streak_novel_cc_genes['S']), 'new S genes;',
len(primitive_streak_novel_cc_genes['G2M']), 'new G2M genes')
print(primitive_streak_novel_cc_genes)
print('')
print('Mesoderm novel cc genes:', len(mesoderm_novel_cc_genes['S']), 'new S genes;', len(mesoderm_novel_cc_genes['G2M']), 'new G2M genes')
print(mesoderm_novel_cc_genes)
# frz1 could be worth looking in to as appears in the g2m phase all cell types.
# it a protein coding gene and is related to cell division
# bub3 also appears in the g2m for all cell types and regulates chromosome segregation during oocyte meiosis
# so it could also be worth exploring
# plk1 and prc1 are two other genes that appear in all diff types
# plk1 related pathways are Mitotic Prophase and Mitotic G1-G1/S phases.
# prc1 protein is present at high levels during the S and G2/M phases of mitosis
# but its levels drop dramatically when the cell exits mitosis and enters the G1 phase
# if we remove mefs before cleaning the data, these genes only appear in 3 out of 4 cell types
Naive novel cc genes: 0 new S genes; 8 new G2M genes
{'S': [], 'G2M': ['Jpt1', 'Incenp', 'Plk1', 'Prc1', 'Bub3', 'Arl6ip1', 'Ccnf', 'Tuba1c']}
Primed novel cc genes: 1 new S genes; 13 new G2M genes
{'S': ['Orc6'], 'G2M': ['Ccna2', 'Jpt1', 'Mis18bp1', 'Incenp', 'Plk1', 'Prc1', 'Bub3', 'Arl6ip1', 'Fzr1', 'Ccnf', 'Fam83d', 'H2afx', 'Tuba1c']}
Primitive streak novel cc genes: 1 new S genes; 21 new G2M genes
{'S': ['Ccne1'], 'G2M': ['Racgap1', 'Kif20a', 'Smc2', 'Arl6ip1', 'Fzr1', 'Kif22', 'Ccnf', 'Dbf4', 'Tuba1c', 'Incenp', 'Prc1', 'Sapcd2', 'H2afx', 'Ccna2', 'Bub1b', 'Bub3', 'Sgo2a', 'Jpt1', 'Mis18bp1', 'Plk1', 'Fam83d']}
Mesoderm novel cc genes: 5 new S genes; 24 new G2M genes
{'S': ['Mcm3', 'Chaf1a', 'Dhfr', 'Lig1', 'Dut'], 'G2M': ['Racgap1', 'Kif20a', 'Smc2', 'Fzr1', 'Nde1', 'Arl6ip1', 'Kif22', 'Ccnf', 'Kpna2', 'Dbf4', 'Tuba1c', 'Incenp', 'Prc1', 'Sapcd2', 'H2afx', 'Ccna2', 'Bub1b', 'Bub3', 'Pimreg', 'Arhgap19', 'Sgo2a', 'Mis18bp1', 'Plk1', 'Fam83d']}
### Part 6 code, figures and explanatory text goes here and in subsequent cells. Show all code.
# load in data without MEF's, NOT cleaned
adata = sc.read_h5ad('unprocessed_data_no_mefs_pt6.h5ad')
# preprocess pipeline
def preprocess_pipeline(adata, exclude_high_ribo = True, ribo_thresh = 35, exclude_high_mt = True, mt_thresh = 3, exclude_doublets = True, doublet_thresh = 98, exclude_sporad_genes = True,
exclude_bad_genes = True, normalize = True, logT= True, hvg = True, scale = True, comp_pca = True):
if exclude_high_ribo:
# remove high ribo expressing cells
adata.var['ribo'] = adata.var_names.str.startswith(("Rps","Rpl"))
sc.pp.calculate_qc_metrics(adata, qc_vars=['ribo'], percent_top=None, log1p=False, inplace=True)
adata = adata[adata.obs['pct_counts_ribo'] < ribo_thresh, :]
if exclude_high_mt:
# remove high mt expressing cells
adata.var['mt']= adata.var_names.str.startswith(("mt-"))
sc.pp.calculate_qc_metrics(adata, qc_vars=['mt'], percent_top=None, log1p=False, inplace=True)
adata = adata[adata.obs['pct_counts_mt'] < mt_thresh, :]
if exclude_doublets:
# remove doublets using 10x rec'd thresh
thresh = np.percentile(adata.obs['total_counts'], doublet_thresh)
adata = adata[adata.obs['total_counts'] < thresh, :]
if exclude_sporad_genes:
# remove bad genes that are expressed in less than 5 cells
gThresh = 5
sc.pp.filter_genes(adata, min_cells=gThresh)
if exclude_bad_genes:
# get mt, ribo genes and Malat1 for removal
mito_genes = adata.var_names.str.startswith('mt-')
ribo_genes = adata.var_names.str.startswith(("Rpl","Rps"))
malat_gene = adata.var_names.str.startswith("Malat1")
# remove em
remove = np.add(mito_genes, ribo_genes)
remove = np.add(remove, malat_gene)
keep = np.invert(remove)
# remove these BAD genes
adata = adata[:,keep].copy()
if normalize:
sc.pp.normalize_total(adata, target_sum=1e4)
if logT:
sc.pp.log1p(adata)
if hvg:
# finding highly varaible genes
# adata.raw = adata
sc.pp.highly_variable_genes(adata, min_mean=0.0125, max_mean=4, min_disp=0.25)
if scale:
sc.pp.scale(adata, max_value=10)
if comp_pca:
sc.tl.pca(adata, n_comps=100)
# load in all the gene lists as lists instead of dataframes :D
naive_genes = [x.strip() for x in open("genes_naive.csv")]
primed_genes = [x.strip() for x in open("genes_primed.csv")]
primitive_streak_genes = [x.strip() for x in open("genes_primitive_streak.csv")]
mesoderm_genes = [x.strip() for x in open("genes_mesoderm.csv")]
# compute the gene scores for diff stage's
# input your adata and each diff stage gene list
sc.tl.score_genes(adata, gene_list = naive_genes, score_name = "naive_genesets")
sc.tl.score_genes(adata, gene_list = primed_genes, score_name = "primed_genesets")
sc.tl.score_genes(adata, gene_list = primitive_streak_genes, score_name = "primitive_streak_genesets")
sc.tl.score_genes(adata, gene_list = mesoderm_genes, score_name = "mesoderm_genesets")
# compute cell cycle phase scores
# read in the cell cycle genes as a list
cell_cycle_genes = [x.strip() for x in open("mouseCellCycle_050218.csv")]
# classify cell cycle genes for each part of the cell cycle
s_genes = cell_cycle_genes[:43]
g2m_genes = cell_cycle_genes[43:]
# now intersect these with genes present in the annData object
cell_cycle_genes = [x for x in cell_cycle_genes if x in adata.var_names]
# reassign the genes for only the one present in the data, they all should be there tho
s_genes = [x for x in s_genes if x in adata.var_names]
g2m_genes = [x for x in g2m_genes if x in adata.var_names]
# score the genes based on these seperated cell cycle genes so we can make a pca
sc.tl.score_genes_cell_cycle(adata, s_genes=s_genes, g2m_genes=g2m_genes)
return adata
# run the preprocess pipeline with cleaning steps off
adata = preprocess_pipeline(adata, exclude_high_ribo = False, ribo_thresh = 35, exclude_high_mt = False, mt_thresh = 3, exclude_doublets = False,
doublet_thresh = 98, exclude_sporad_genes = False,
exclude_bad_genes = False, normalize = False, logT= False, hvg = False, scale = False, comp_pca = True)
adata.obs
| naive_genesets | primed_genesets | primitive_streak_genesets | mesoderm_genesets | S_score | G2M_score | phase | |
|---|---|---|---|---|---|---|---|
| AAAGGATCATCAGCTA | 5.900000 | -8.740000 | -12.240000 | -1.60 | 2.231003 | 4.407257 | G2M |
| AAAGTGAAGACAAGCC | -15.286667 | 3.166667 | -9.633333 | -1.75 | 2.099012 | 7.239138 | G2M |
| AACACACGTGTAACGG | -0.046667 | -0.053333 | -0.053333 | 0.00 | -0.000156 | 0.043626 | G2M |
| AACCACATCCACAAGT | 1.440000 | -13.270000 | -16.020000 | -2.16 | 7.064634 | 11.007042 | G2M |
| AACCATGCAGTAGATA | -0.066667 | -0.053333 | -0.053333 | -0.01 | 0.043012 | -0.001492 | S |
| ... | ... | ... | ... | ... | ... | ... | ... |
| TTTCGATGTGCGAACA | -11.833333 | 3.046667 | 6.046667 | -0.79 | 1.419227 | 4.775931 | G2M |
| TTTCGATTCCCAAGCG | -7.820000 | 1.143333 | -1.406667 | -1.10 | 0.843820 | 5.365332 | G2M |
| TTTGACTGTCACTTCC | -8.480000 | -6.453333 | 2.146667 | 22.67 | 0.297270 | 6.014413 | G2M |
| TTTGACTGTGCGGATA | -5.080000 | 3.013333 | 3.913333 | -0.19 | 1.059423 | 2.976009 | G2M |
| TTTGGAGCAGGTTCCG | -0.433333 | 2.156667 | -7.093333 | -1.04 | 2.731041 | 3.422684 | G2M |
1680 rows × 7 columns
# show the PC plots
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], show=False, size=10)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], show=False, size=10)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], show=False, size=10)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], show=False, size=10)
# this looks pretty bad already
... storing 'phase' as categorical
<AxesSubplot:xlabel='PC1', ylabel='PC4'>
# next we plot and color by each geneset
# naive
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "naive_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'naive_genesets'}, xlabel='PC1', ylabel='PC4'>
# primed
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "primed_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'primed_genesets'}, xlabel='PC1', ylabel='PC4'>
# primitive_streak
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'primitive_streak_genesets'}, xlabel='PC1', ylabel='PC4'>
# mesoderm
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'mesoderm_genesets'}, xlabel='PC1', ylabel='PC4'>
# performs KNN neighbors and then leiden clustering
# note: there are no right or wrong parmaeters to choose when clustering. Just have to pick the ones that are reasonable and give reasonable results.
# would highly suggest playing with the parameters and see how the results differ
n_pcs = 20
n_neighbors = 15
sc.pp.neighbors(adata, n_neighbors=n_neighbors, n_pcs=n_pcs)
sc.tl.leiden(adata, .25)
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "leiden", show=False, size=10, vmax = 1.5)
# the clusetrs here look like the correspond to the ones above but the purple one may be an outlier
# naive is orange 1
# primed is green 2
# primitive is blue 0
# mesoderm is red 3
<AxesSubplot:title={'center':'leiden'}, xlabel='PC1', ylabel='PC4'>
For this trial, leiden looks really different from geneset scores for cell type/diff type, so we will use the max geneset score to determine cell diff stage.
adata.obs
| naive_genesets | primed_genesets | primitive_streak_genesets | mesoderm_genesets | S_score | G2M_score | phase | leiden | |
|---|---|---|---|---|---|---|---|---|
| AAAGGATCATCAGCTA | 5.900000 | -8.740000 | -12.240000 | -1.60 | 2.231003 | 4.407257 | G2M | 1 |
| AAAGTGAAGACAAGCC | -15.286667 | 3.166667 | -9.633333 | -1.75 | 2.099012 | 7.239138 | G2M | 1 |
| AACACACGTGTAACGG | -0.046667 | -0.053333 | -0.053333 | 0.00 | -0.000156 | 0.043626 | G2M | 4 |
| AACCACATCCACAAGT | 1.440000 | -13.270000 | -16.020000 | -2.16 | 7.064634 | 11.007042 | G2M | 1 |
| AACCATGCAGTAGATA | -0.066667 | -0.053333 | -0.053333 | -0.01 | 0.043012 | -0.001492 | S | 3 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... |
| TTTCGATGTGCGAACA | -11.833333 | 3.046667 | 6.046667 | -0.79 | 1.419227 | 4.775931 | G2M | 1 |
| TTTCGATTCCCAAGCG | -7.820000 | 1.143333 | -1.406667 | -1.10 | 0.843820 | 5.365332 | G2M | 0 |
| TTTGACTGTCACTTCC | -8.480000 | -6.453333 | 2.146667 | 22.67 | 0.297270 | 6.014413 | G2M | 1 |
| TTTGACTGTGCGGATA | -5.080000 | 3.013333 | 3.913333 | -0.19 | 1.059423 | 2.976009 | G2M | 2 |
| TTTGGAGCAGGTTCCG | -0.433333 | 2.156667 | -7.093333 | -1.04 | 2.731041 | 3.422684 | G2M | 0 |
1680 rows × 8 columns
# take a subset of adata.obs and get the max geneset score of the 4 diff types for each cell and call it that cell
cell_differentiation = adata.obs[['naive_genesets', 'primed_genesets', 'primitive_streak_genesets', 'mesoderm_genesets']]
cell_differentiation['cell_type_label'] = cell_differentiation.idxmax(axis=1)
<ipython-input-82-a85028a30fd7>:3: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame. Try using .loc[row_indexer,col_indexer] = value instead See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy cell_differentiation['cell_type_label'] = cell_differentiation.idxmax(axis=1)
import re
# use regex to drop the everything after the stage name
regex = r'(.*)_'
for i in range(0, len(cell_differentiation['cell_type_label'])):
cell_differentiation['cell_type_label'][i] = re.findall(regex, cell_differentiation['cell_type_label'][i])[0] # 0 index since findall returns list
# number of each stage of differentiation
print(cell_differentiation['cell_type_label'].value_counts())
primed 618 mesoderm 498 primitive_streak 295 naive 269 Name: cell_type_label, dtype: int64
<ipython-input-84-a00fd489b9bf>:5: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy cell_differentiation['cell_type_label'][i] = re.findall(regex, cell_differentiation['cell_type_label'][i])[0] # 0 index since findall returns list /Users/kevin/opt/anaconda3/lib/python3.8/site-packages/IPython/core/interactiveshell.py:3437: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy exec(code_obj, self.user_global_ns, self.user_ns)
# stages of differentation for each cell
print(cell_differentiation['cell_type_label'].head())
AAAGGATCATCAGCTA naive AAAGTGAAGACAAGCC primed AACACACGTGTAACGG mesoderm AACCACATCCACAAGT naive AACCATGCAGTAGATA mesoderm Name: cell_type_label, dtype: object
# add differentiation_type back to adata.obs and perform pca
adata.obs['cell_type_label'] = cell_differentiation['cell_type_label']
fig, axs = plt.subplots(2,2, figsize=(7,7), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
# this looks way worse than transformed data
... storing 'cell_type_label' as categorical
<AxesSubplot:title={'center':'cell_type_label'}, xlabel='PC1', ylabel='PC4'>
# phase and cell stages
print('S phase and Naive:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'naive')]))
print('S phase and Primed:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'primed')]))
print('S phase and Primitive:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'primitive_streak')]))
print('S phase and Mesoderm:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'mesoderm')]))
print('S phase and Other:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'other')]))
print('G2M phase and Naive:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'naive')]))
print('G2M phase and Primed:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'primed')]))
print('G2M phase and Primitive:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'primitive_streak')]))
print('G2M phase and Mesoderm:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'mesoderm')]))
print('G2M phase and Other:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'other')]))
# much more g2m phase
S phase and Naive: 34 S phase and Primed: 94 S phase and Primitive: 26 S phase and Mesoderm: 84 S phase and Other: 0 G2M phase and Naive: 234 G2M phase and Primed: 521 G2M phase and Primitive: 268 G2M phase and Mesoderm: 393 G2M phase and Other: 0
# Primitive 562
# Primed 403
# Naive 321
# Mesoderm 145
# Other 35
# S phase and Naive: 136
# S phase and Primed: 184
# S phase and Primitive: 238
# S phase and Mesoderm: 48
# S phase and Other: 7
# G2M phase and Naive: 159
# G2M phase and Primed: 193
# G2M phase and Primitive: 270
# G2M phase and Mesoderm: 78
# G2M phase and Other: 11
# now let's run on function on each cell type (stage of differentiation)
# first subset each diff type
naive_adata = adata[adata.obs['cell_type_label'] == 'naive']
primed_adata = adata[adata.obs['cell_type_label'] == 'primed']
primitive_streak_adata = adata[adata.obs['cell_type_label'] == 'primitive_streak']
mesoderm_adata = adata[adata.obs['cell_type_label'] == 'mesoderm']
# run our function on each diff type subset
# default pthresh = 0.45 and novel = True
naive_novel_cc_genes = get_cc_genes(naive_adata, cell_cycle_genes)
primed_novel_cc_genes = get_cc_genes(primed_adata, cell_cycle_genes)
primitive_streak_novel_cc_genes = get_cc_genes(primitive_streak_adata, cell_cycle_genes)
mesoderm_novel_cc_genes = get_cc_genes(mesoderm_adata, cell_cycle_genes)
/Users/kevin/opt/anaconda3/lib/python3.8/site-packages/scipy/stats/stats.py:3508: PearsonRConstantInputWarning: An input array is constant; the correlation coefficent is not defined. warnings.warn(PearsonRConstantInputWarning())
# output # of novel cc genes and the genes themself for each phase for each cell type (diff type)
print('Naive novel cc genes:', len(naive_novel_cc_genes['S']), 'new S genes;', len(naive_novel_cc_genes['G2M']), 'new G2M genes')
print(naive_novel_cc_genes)
print('')
print('Primed novel cc genes:', len(primed_novel_cc_genes['S']), 'new S genes;', len(primed_novel_cc_genes['G2M']), 'new G2M genes')
print(primed_novel_cc_genes)
print('')
print('Primitive streak novel cc genes:', len(primitive_streak_novel_cc_genes['S']), 'new S genes;',
len(primitive_streak_novel_cc_genes['G2M']), 'new G2M genes')
print(primitive_streak_novel_cc_genes)
print('')
print('Mesoderm novel cc genes:', len(mesoderm_novel_cc_genes['S']), 'new S genes;', len(mesoderm_novel_cc_genes['G2M']), 'new G2M genes')
print(mesoderm_novel_cc_genes)
Naive novel cc genes: 883 new S genes; 1916 new G2M genes
{'S': ['Ddx1', 'Rps8', 'Psmb2', 'Nipsnap1', 'Mrpl42', 'Emb', 'Rps7', 'Prdx1', 'Ubl5', 'Snrpd1', 'Paics', 'Pin1', 'Mak16', 'Twf2', 'Rpl28', 'Cct4', 'Psmd6', 'Ccne1', 'Fbl', 'Hspd1', 'Arpp19', 'Rbmxl1', 'Lin28a', 'Pfdn1', 'Lig1', 'Rpl18', 'Hsd17b10', 'Cdk4', 'Mrpl51', 'Dynll1', 'Tuba4a', 'Naa15', 'Ddx24', 'Dnaja2', 'Hnrnpd', 'Eef1g', 'Selenof', 'Rpl8', 'Smarcc1', 'Ncor1', 'Trap1a', 'Rps21', 'Uqcrq', '2410015M20Rik', 'Mettl9', 'Cops5', 'Arf1', 'Med28', 'Cib1', 'Cox6b1', 'Ddx5', 'Kpnb1', 'Dut', 'Krtcap2', 'Pdcd6', 'Bax', 'Dctpp1', 'Timm17a', 'Mrps10', 'Eif1', 'Pabpc1', 'Bex3', 'Ube2k', 'Ywhah', 'Rheb', 'Psmb1', 'Akr1a1', 'Glrx3', 'Rps14', 'Rpl21', 'Uqcrb', 'Nop14', 'Gdi2', 'Fdps', 'Uchl3', 'Fam92a', 'Txndc17', 'Psmc5', 'Rps15a', 'Aimp1', 'Mrpl55', 'Rps27', 'Lman2', 'Rps25', 'Banf1', 'G3bp2', 'Abce1', 'Smarca4', 'Hnrnpa3', 'Npm1', 'Baz1b', 'Suds3', 'Rpn2', 'Serbp1', 'Hsp90b1', 'Edf1', 'Ubap2l', 'Ywhab', 'Eef1d', 'Lsm4', 'Ddx47', 'Eif2s1', 'Rnf10', 'Mrps5', 'Mrpl30', 'Rps9', 'Tmed2', 'Gtf2f1', 'Btf3', 'Clns1a', 'Erh', 'Tomm5', 'Txnl1', 'Dnajc19', 'Stoml2', 'Ndufb5', 'Ppp4c', 'Srsf3', 'Bag1', 'Cmpk1', 'Cnbp', 'Gtf2h5', 'Eloc', 'Mtch2', 'Ddx54', 'Fscn1', 'Cdc5l', 'Rpl17', 'Prmt1', 'Atp5a1', 'Suz12', 'Rps27l', 'Paip2', 'Sem1', 'Ube2d3', 'D8Ertd738e', 'Pnn', 'Naf1', 'Rps27a', 'Naa20', 'Snrpg', 'Sptssa', 'Cebpz', '1110008F13Rik', 'Tfdp1', 'Pdcd5', 'Rbm8a', 'Ndufc1', 'Anp32b', 'Polr2a', 'mt-Nd2', 'Eif5', 'Nudc', 'Mybbp1a', 'Dbi', 'Pfdn2', 'Ppp2ca', 'Ruvbl1', 'Rpl30', 'Sept7', 'Nt5dc2', 'Polr2h', 'Ndufb11', 'Srpk1', 'Rfc3', 'Atp6v1f', 'Bzw1', 'Rpl35', 'Cox4i1', 'Tmem14c', 'Sin3a', 'Pold2', 'Psmd3', 'Fcf1', 'Gar1', 'Samm50', 'Psmd7', 'Aamp', 'Prmt5', 'St13', 'Rps18', 'Anp32a', 'Rpl6', 'Actb', 'Fip1l1', 'Cyb5b', 'Tcerg1', 'Rpl34', 'Ncapd3', 'Psmc4', 'Cfdp1', 'Oaz1', 'Bex4', 'Psmc6', 'Snrpf', 'Rhoa', 'Calm2', 'Pes1', 'Umps', 'Phf5a', 'Ndufs6', 'Eef1akmt1', 'Psma4', 'Prdx4', '2610318N02Rik', 'Cox7b', 'Ndufs8', 'Wdr12', 'Ccdc58', 'Rpl41', 'Trnau1ap', 'Pold1', 'Atp5e', 'Dnmt1', 'Ndufv2', 'Psma3', 'Hdgfl2', 'Atp5j', 'Taldo1', 'Ddx46', 'Rpp25l', 'Nubp2', 'Sarnp', 'Rpl3', 'Chd4', 'Fam104a', 'Ubxn1', 'Abhd17a', 'Emc6', 'Papola', 'Ssrp1', 'Ctps', 'Slc25a3', 'Ddx39', 'Rpl37', 'Hnrnpa2b1', 'Ubtf', 'Rpl10', 'Ndufs7', 'Prelid1', 'Clta', 'Snx3', 'Nedd8', 'Ppm1g', 'Emg1', 'Dnajc8', 'Ppp1ca', 'Lage3', 'Ppp2r1a', 'Cycs', 'Rps5', 'Cct8', 'Aasdhppt', 'Adss', 'Ddx21', 'Ppia', 'Cyc1', 'Arpc1a', 'Npm3', 'Mrps15', 'Mrpl22', 'Ost4', 'Rpsa', 'Sssca1', 'Mcm10', 'Rps28', 'Uqcrh', 'Eif3h', 'Ssb', 'Mlf2', 'Eif3b', 'Clpp', 'Mdh1', 'Ap2s1', 'Eif4g1', 'Nop10', 'Park7', 'Snrpe', 'Mtx2', 'Dcun1d5', 'Impdh2', 'Atp5h', 'Rpl32', 'Gm10036', '1810058I24Rik', 'Psmb6', 'Mrpl18', 'Txn1', 'Psmg1', 'Smarcb1', 'Thop1', 'Trir', 'Tra2b', 'Zfp428', 'Cdt1', 'Rpl13', 'Arhgdia', 'Rtf1', 'Rpl39', 'U2surp', 'Phf20', 'Alyref', 'Rps6', 'Minos1', 'Prdx2', 'Vapa', 'Sdhb', 'Fkbp4', 'Cenpx', 'Luc7l3', 'Bzw2', 'Ostc', 'Mphosph8', 'Hadh', 'Nhp2', 'Gapdh', 'Naa50', 'Hnrnpf', 'Thoc3', 'Impa2', 'Cenph', 'Stip1', 'Fubp1', 'Capns1', 'Cbx1', 'Anapc11', 'Smc2', 'Gspt1', 'Psmd8', 'Nip7', 'Eif4a3', 'Mrto4', 'Atpif1', 'Vcp', 'H3f3b', 'Vdac2', 'Rbm39', 'Srsf9', 'Sdhc', 'Gtpbp4', 'Prpf31', 'Psma2', 'Gnai2', 'Tfam', 'Rps26', 'Tk1', 'Chaf1a', 'Nup43', 'Mapk1', 'Ndufa7', 'Utp4', 'Psma6', 'Cox6c', 'Thoc7', 'Aurkaip1', 'Rangrf', 'Arpc2', 'Bcas2', 'Ebna1bp2', 'Nolc1', 'Ran', 'Mrpl28', 'Rpl12', 'Mtap', 'Fxr1', 'Orc6', 'Tomm70a', 'Grpel1', 'Tkt', '2010107E04Rik', 'Canx', 'Rpl35a', 'Itpa', 'Rplp0', 'Lsm6', 'Thyn1', 'Srsf6', 'Pmpca', 'Eif3i', 'Hnrnpa0', 'Rfc1', 'Psmc2', 'Exosc7', 'Nudt21', 'Dad1', 'Ppp1r14b', 'Ccnh', 'Blmh', 'Lyar', 'Siva1', 'Csde1', 'Rcl1', 'Mrpl36', 'Arl6ip6', 'Abcf1', 'Psmf1', 'Tpm3', 'Dkc1', 'Gsta4', 'Ccnd1', 'Sf3b2', 'Srsf11', 'Nsmce4a', 'Gpx1', 'Lsm12', 'Psip1', 'Eif1ax', 'Mrps25', 'Phb2', 'Nae1', 'Trim71', 'Fkbp3', 'Snrpd3', 'Pcbp2', 'Ndufa5', 'Rplp2', 'Ciapin1', 'Rpl27a', 'Bccip', 'Hikeshi', 'Mcm3', 'Uqcrc2', 'Gart', 'Ssbp1', 'Rps2', 'Atp5b', 'Eif1ad', 'Eef1e1', 'Dpy30', 'Rpl5', 'Polr2f', 'Lsm3', 'Polr2i', 'Cct7', 'Hnrnpdl', 'Rps11', 'Prpf40a', 'Nsun2', 'Pak1ip1', 'Txnrd1', 'Mdh2', 'Csnk1a1', 'Eef1b2', 'Sigmar1', 'Rpl7a', 'Polr1c', 'Eif3g', 'Ssr2', 'Eif4ebp2', 'Tecr', 'Ndufv3', 'Gsr', 'Rpl22', 'Elob', 'Rnf138', 'Cfl1', 'Ptges3', 'Mpp6', 'Tcof1', 'Plekhj1', 'Tbcb', 'Pkm', 'Ormdl2', 'Atox1', 'Eif4a1', 'Pcbp4', 'Usp7', 'Tsn', 'Actr3', 'Cdc42', 'Pdia6', 'Magoh', 'Psma7', 'Eno1', 'Farsa', 'Eif6', 'Psmd4', 'C1qbp', 'Psmd14', 'Cox5a', 'Ndufb7', 'Mrpl45', 'Tsen34', 'Brix1', 'Srrt', 'Pdap1', 'Hnrnpab', 'Seh1l', 'Uqcr10', 'Rps4x', 'Ndufa4', 'Mrpl12', 'Ube2e3', 'Srrm1', 'Tomm7', 'Ssu72', 'Ndufb8', 'Rps19', 'Psmb3', 'Tbca', 'Acin1', 'Stub1', 'Fh1', 'Eif4g2', 'Mrpl40', 'Sec61b', 'Nap1l1', 'Rpl7', 'Zc3h15', 'Hnrnph1', 'Gcsh', 'Hsp90aa1', 'Ranbp1', 'Yme1l1', 'Prrc2c', 'Uchl5', 'Ftsj3', 'Atp5o-1', 'Wdr61', 'Nfyb', 'Cul3', 'Hspe1', 'Rpl14', 'Ppan', 'Snrnp40', 'Rplp1', 'Lsm1', 'Guk1', 'Snu13', 'Smc3', 'Imp4', 'Pcbp1', 'Fus', 'Mrps16', 'Ppat', 'Hprt', 'Zmat2', 'Ezh2', 'Psmb5', 'Uqcrfs1', 'Tcp1', 'Dtymk', 'Trp53', 'Chchd4', 'Rpl38', 'Tpr', 'Ndufa6', 'Hmgn1', 'Pdia3', 'Pa2g4', 'Tuba1b', 'Mrpl17', 'Cacybp', 'Cpsf6', 'Smarcd1', 'Mrps12', 'Swi5', 'Eif3k', 'Ppib', 'Taf1', 'Wapl', 'Supt16', 'Snrpb', 'Gatad2a', 'Pdia4', 'Gnl3', 'Wdr89', 'Prdx5', 'mt-Nd1', 'Sfr1', 'Lmnb1', 'Eif3a', 'Glo1', 'Mcm7', 'Ccar1', 'Rsl1d1', 'Rpl37a', 'Gmps', 'Rps12', 'U2af1', 'Ppig', 'Ilf2', 'Srsf10', 'Atp5d', 'Trap1', 'Nup37', 'Smarca5', 'Atp5g1', 'Timm8b', 'Ywhaq', 'Rbx1', 'Hnrnpk', 'Chchd1', 'Rps16', 'Sf3b5', 'Rpl36', 'Polr2d', 'Uchl1', 'Tead2', 'Arglu1', 'Xpo1', 'Srp19', 'Polr2j', 'Mdk', 'Ufm1', 'Srp9', 'Srsf7', 'Utp11', 'Fundc2', 'Psma1', 'Mrps14', 'Rrp1', 'Ak2', 'Ybx3', 'Eif3d', 'Rpl31', 'Cct3', 'Sub1', 'Fau', 'Sf1', 'Cdv3', 'Hspa9', 'Psmc3ip', 'Trappc4', 'Pomp', 'Rpl4', 'Lrrc59', 'Serp1', 'Gclm', 'Csnk2b', 'Prpf19', 'Sugt1', 'Rps17', 'Kif20a', 'mt-Nd4', 'Ptrh2', 'Hspa14', 'Pla2g1b', 'Psmd11', 'Pfdn5', 'Gpd2', 'Rrp9', 'Rcc1', 'Ptp4a2', 'Dcakd', 'Set', 'Cwc15', 'Hspa4', 'Ptma', 'Rpl26', 'Psmd2', 'Psmc1', 'Rpl11', 'Vdac1', 'Rps20', 'Psmg2', 'Bola3', 'Bri3bp', 'Igf2bp1', 'Ahsa1', 'Cox5b', 'Srrm2', 'Rbbp4', 'Calm1', 'Ddx39b', 'Srsf2', 'Ktn1', 'Nedd4', 'Actl6a', 'Vdac3', 'Mif', 'Snx5', 'Nom1', 'Brk1', 'Rbbp7', 'Ppih', 'Matr3', 'Hmgcs1', 'Prelid3b', 'Rpl13a', 'Dnttip2', 'Ufc1', 'Eif3m', 'Bsg', 'Bola2', 'Dnajc2', 'Sf3b3', 'Eif3e', 'Lsm2', 'Eif3l', 'Eif2a', 'Maz', 'Gng5', 'Dhfr', 'Hint1', 'Zfp706', 'Cpsf2', 'Hnrnpul2', 'Tsr1', 'Cnot9', 'Ppa1', 'Psmd1', 'Snrpb2', 'Rps24', 'Uba2', 'Ctnnb1', 'Tmem258', 'Slc25a5', 'Atp5c1', 'Rac1', 'Denr', 'Ola1', 'Msh6', 'Cetn3', 'Grwd1', 'Fam136a', 'Rtcb', 'Exosc1', 'Timm50', 'Nop58', 'Mrpl14', 'Atp5f1', 'Ndufs2', 'Polr2e', 'Naca', 'Hat1', 'Smdt1', 'Rps13', 'L1td1', 'Acly', 'Higd1a', 'Pfas', 'Sf3b4', 'Sf3a2', 'Nucks1', 'Bclaf1', 'Csrp2', 'Ndufb9', 'Rps3', 'Trim28', 'Rpl23', 'Tcf3', 'Zmynd19', 'Cox8a', 'Hsp90ab1', 'Scamp3', 'Ncl', 'Rpl10a', 'Rbpms2', 'Smc6', 'Rpl7l1', 'Atp5g3', 'Lsm8', 'Snrpd2', 'Ankrd11', 'Bcap31', 'Tomm34', 'Eif5a', 'Tomm22', 'Adh5', 'Psma5', 'Mrpl52', 'Rpl9', 'Tbrg1', 'Ccna2', 'Eif4h', 'Polr3k', 'Rps29', 'Apex1', 'Rrp1b', 'Timm13', 'Pgp', 'Wbp11', 'E2f4', 'Cdk2ap1', 'Cox7a2', 'Pelp1', 'Psmc3', '9130401M01Rik', '1810037I17Rik', 'Usp14', 'Rps15', 'Hnrnpc', 'Ddx27', 'Cdkn2aipnl', 'Fasn', 'Dazap1', 'Ccdc124', 'Rpl27', 'Ubb', 'Cct2', 'Nxt1', 'Dnaja1', 'Mrpl34', 'Fis1', 'Hspa8', 'H2afv', 'Srp14', 'Mrpl20', 'Chchd2', 'Cct5', 'Mrpl11', 'Scaf11', 'Ndufc2', 'Aprt', 'Mrps28', 'Sdhd', 'Ppil1', 'Uqcr11', 'Syce2', 'Slirp', 'Eny2', 'Gtf2e2', 'Rexo2', 'Hnrnpm', 'Rpl18a', 'Ywhae', 'Sf3a3', 'Fam32a', 'Pfn1', 'Fth1', 'Rpl19', 'Spcs2', 'Fkbp1a', 'Tpt1', 'Lsm5', 'Lsm7', 'Tmsb10', 'Psmb4', 'Snrnp25', 'Fam49b', 'Tomm40', 'Ddx3x', 'Mlec', 'Polr2g', '1110004F10Rik', 'G3bp1', 'Rps10', 'Atp5j2', 'Ppid', 'Znrd1', 'Taf10', 'Gtf2a2', 'Eif5b', 'Ndufa2', 'Pfdn4', 'Rad54l', 'Usmg5', 'Ybx1', 'Gins4', 'Cox7c', 'Cisd1', 'Hdgf', 'Ndufa11', 'Rack1', 'Txnl4a', 'Smn1', 'Strap', 'Cdc37', 'Eif3f', 'Aldoa', 'Rpl24', 'Rps23', 'Rtraf', 'Gadd45gip1', 'Mbd3', 'Mad2l1', 'Rest', 'Sf3b6', 'Ube2r2', 'Ptbp1', 'Ipo7', 'Dek', 'Mrps34', 'Rpl36a', 'Cyb5a', 'Tmem97', 'Wdr18', 'Pclaf', 'Csnk2a1', 'Elavl1', 'Slc25a39', 'Srsf1'], 'G2M': ['Upf3b', 'Psmb2', 'Snrnp27', 'Mrpl42', 'Prdx1', 'Frg1', 'Mcts1', 'Mrpl39', 'Snrpd1', 'Paics', 'Rhno1', 'Eif2b3', 'Mak16', 'Cnih1', 'Fbl', 'Psmd6', 'Cdk7', 'Arpp19', 'Ruvbl2', 'Lin28a', 'Pfdn1', 'Lig1', 'Gtf3c6', 'Rpl18', 'Hsd17b10', 'Adat2', 'Ndufaf8', 'Snapc5', 'Tuba4a', 'Terf1', 'Rbmxl2', 'Bub1b', 'Tceal8', 'Kmt5a', 'Cul5', 'Lman1', 'Gnpat', 'Timm17b', 'Trap1a', 'Nub1', 'Rps21', 'Uqcrq', '2410015M20Rik', 'Ash2l', 'Hras', 'Parp2', 'Nfkbib', 'Fam50a', 'Nfyc', 'Ewsr1', 'Med28', 'Uqcc2', 'Cox6b1', 'Pum3', 'Ddx5', 'Jade1', 'Dut', 'Pdcd11', 'Bax', 'Pdcd6', 'Dctpp1', 'Ttc3', 'Prdx6', 'Rbm26', 'Snrpc', 'Hadha', 'Prpf38a', 'Rrp15', 'Ube2k', 'Chd8', 'Zfp106', 'Babam2', 'Zfp638', 'Rps14', 'Uqcrb', 'Nop14', 'Smim12', 'Ppil3', 'Cd320', 'Uchl3', 'Sall4', 'Fkbp8', 'Txndc17', 'Psmc5', 'Nudt2', 'Impact', 'Mrpl55', 'Lman2', 'Tbl1x', 'Rps25', 'G3bp2', 'Ube2d2a', 'Atp5k', 'Smarca4', 'Igf2bp3', 'Usp10', 'Npm1', 'Myl6', 'Bex2', 'Hsp90b1', 'Mnat1', 'Pebp1', 'Plaa', 'Ndufaf3', '0610009B22Rik', 'Tfg', 'Ywhab', 'Lsm4', 'Parl', 'Brd2', 'Ddx47', 'Pbrm1', 'Eif2s1', 'Taf7', 'Mrps5', 'Stk38', 'Mrpl30', 'Celf1', 'Rer1', 'Nipsnap3b', 'Ythdf1', 'Pcgf6', 'Rfc5', 'Gtf2f1', 'Med4', 'Btf3', 'Clns1a', 'Erh', 'Ina', 'Fkbp9', 'Luc7l', 'Txnl1', 'Dnajc19', 'Phb', 'Stoml2', 'Atp6v0e', 'Tmem50a', 'Srsf3', 'Rab9', 'Glul', 'Cnbp', 'Ilf3', 'Gtf2h5', 'Eif3j2', 'Brms1', 'Eloc', 'Nudt4', 'Cdc5l', 'Cops4', 'Rpl17', 'Papd4', 'Pfdn6', 'Atp5a1', 'Mat2b', 'Paip2', 'Commd4', 'Sem1', 'Mis18bp1', 'Jtb', 'Plk1', 'Naf1', 'Rps27a', 'Pmpcb', 'Snrpg', 'Ppil4', 'Haus1', 'Tbrg4', 'Mrpl4', 'Topors', 'Enoph1', 'Cebpz', '1110008F13Rik', 'Qdpr', 'Tfdp1', 'Pdcd5', 'Fdft1', 'Raf1', 'Rbbp6', 'Anp32b', 'Prdx3', 'Eif5', 'Leprotl1', 'Eif4ebp1', 'Gemin7', 'Pfdn2', 'Gpi1', 'Rpl30', 'Cep70', 'Eif4b', 'Polr2h', 'Srpk1', 'Atp6v1f', 'Rpl35', 'Pold2', 'Hspbap1', 'Bloc1s2', 'Psmd3', 'Vps29', 'Gar1', 'Psmd7', 'Smc1a', 'Trnt1', 'Ddt', 'Aamp', 'Vrk1', 'Rars2', 'Snx10', 'Anp32a', 'Mtf2', 'Ppm1a', 'Pno1', 'Fip1l1', 'Upf3a', 'Pwp1', 'Actb', 'Tcerg1', 'Hddc2', 'Arpc5', 'Rpf2', 'Cfdp1', 'Oaz1', 'Yy1', 'Bex4', 'Psmc6', 'Mrpl43', 'Calm2', 'Pes1', 'Taf1d', 'Psma4', 'Mtdh', 'Triml2', 'Prdx4', 'Ube2q1', 'Nampt', 'Ccdc58', 'Myl12b', 'Trim8', 'Rida', 'Pold1', 'Rad23b', 'Atp5e', 'Dnmt1', 'Ndufv2', 'Arl6ip1', 'Psma3', 'Hdgfl2', 'Ddx46', 'Tiprl', 'Cebpzos', 'Commd8', 'Sarnp', 'Eed', 'Rpl3', 'Pafah1b2', 'Fam104a', 'Selenoh', 'Emc6', 'Papola', 'Mien1', 'Prc1', 'Dyrk3', 'Snw1', 'Coq7', 'Ssrp1', 'Nelfe', 'Ptms', 'Rpl10', 'Clta', 'Cyb5r3', 'Atp6v1g1', 'Dnajc8', 'Rps5', 'Gtsf1l', 'Cyc1', 'Arpc1a', 'Hp1bp3', 'Asna1', 'Rpsa', 'Nrbp1', 'Numa1', 'Sssca1', 'Uqcrh', 'Calr', 'Eif3b', 'Clpp', 'Utp3', 'Mdh1', 'Ap2s1', 'Dppa2', 'Eif4g1', 'Nop10', 'Mob4', 'Actr2', 'Snrpe', 'Mtx2', 'Srp72', 'Cops6', 'Ncaph', 'Dcun1d5', 'Yars2', 'Puf60', 'Sf3a1', 'Mrpl32', 'Med8', 'Psmb6', 'Macf1', 'Cox6a1', 'Txn1', 'Prpsap1', 'BC031181', 'Smarcb1', 'Srek1', 'Trir', 'Cdt1', 'Tra2b', 'Hcfc1', 'Arhgdia', 'Rsrc2', 'Degs1', 'Rpl39', 'Aldh2', 'Zfp990', 'mt-Co1', 'Rtn3', 'Slc25a13', 'Sec23b', 'Sap18', 'Rps6', 'Minos1', 'Mrpl38', 'Commd2', 'Cenpx', 'Luc7l3', 'Bzw2', 'Mphosph8', 'Nelfa', 'Larp4', 'Srp68', 'Nhp2', 'Hnrnpf', 'Mthfd1', 'Cnot2', 'Mrps23', 'Impa2', 'Stip1', 'Fubp1', 'Hspa5', 'Cbx1', 'Anapc11', 'Atpif1', 'Zfp593', 'Vasp', 'H3f3b', 'Vdac2', 'Cndp2', 'Mcrs1', 'Sdhc', 'Tfam', 'Rps26', 'Capza2', 'Ndufa7', 'Stard3nl', 'Iscu', 'Psma6', 'Thoc7', 'Aurkaip1', 'Fastkd2', 'Arpc2', 'Ebna1bp2', 'Bcas2', 'Nolc1', 'Ran', 'Yrdc', 'Rtn4', 'Mrpl28', 'Cwf19l2', 'Sec13', 'Cops2', 'Bod1l', 'Fxr1', 'Brd7', 'Mis18a', 'Tomm70a', 'Grpel1', 'Tmem147', 'Lsm6', 'Elp2', 'Hdac1', 'Pmpca', 'Kdm3a', '2810474O19Rik', 'Rfc1', 'Sfpq', 'Snx2', 'Ipo5', 'Trappc6b', 'Exosc7', 'Actr10', 'Kras', 'Nudt21', 'Dad1', 'Ppp1r14b', 'Cdk9', 'Lyar', 'Rcl1', 'Npc2', 'Tpm3', 'Tprgl', 'Coprs', 'Ccnd1', 'Phax', 'Nsmce4a', 'Gnai3', 'Psip1', 'Eif1ax', 'Mrpl46', 'Mrps25', 'Mff', 'Fkbp3', 'Pcbp2', 'Tmem55b', 'Sfxn1', 'Rpl27a', 'Bccip', 'Ddx17', 'Twf1', 'Top1', 'Gart', 'Ssbp1', 'Unc50', 'Atp5b', 'Ndufaf1', 'Eif1ad', 'Gpx4', 'Dst', 'Eef1e1', 'Rp9', 'Dpy30', 'Rpl5', 'Crnkl1', 'Lsm3', 'Med17', 'Txndc9', 'Son', 'Polr2i', 'Tmsb4x', 'Bckdhb', 'Cnot8', 'Hnrnpdl', 'Cfap20', 'Prpf40a', 'Nsun2', 'Pak1ip1', 'Stk16', 'Ccz1', 'Tle4', 'Abcf2', 'Fnta', 'Sigmar1', 'Sept1', 'Mrps26', 'Wasf2', 'Polr1c', 'Eif3g', 'Ssr2', 'Eif4ebp2', 'Sh3bgrl3', 'Ndufv3', 'Hsbp1', 'Gsr', 'Srsf5', 'Rbpms', 'Elob', 'Rnf138', 'Hnrnpl', 'Nme4', 'Cse1l', 'Cfl1', 'Rpl22', 'Meaf6', 'Mrps22', 'Tsr3', 'Sf3b1', 'Tcof1', 'Plekhj1', 'Pkm', 'Tbc1d15', 'Eif4a1', 'Cdc34', 'Sbno1', 'Usp7', 'Tsn', 'Cdc42', 'Magoh', 'Bcl10', 'Fiz1', 'Psmd4', 'Pitpna', 'Psmd14', 'Cox5a', 'Hdac2', 'Chek1', 'Cnot1', 'Rnf126', 'Iars', 'Zc3h13', 'Mrpl35', 'Cdk11b', 'C1d', 'Tsen34', 'Brix1', 'Srrt', 'Pdap1', 'Kifap3', 'Nsmce1', 'Eif3c', 'Hnrnpab', 'Rps4x', 'Ndufa4', 'Ube2e3', 'Tomm7', 'Prpf8', '4930453N24Rik', 'Ssu72', 'Rnf220', 'Cd9', 'Acin1', 'Gfer', 'Stub1', 'Slu7', 'Ptrhd1', 'Mrpl40', 'Rpl7', 'Zc3h15', 'Hnrnph1', 'Snx17', 'Sec31a', 'Brd3', 'Kars', 'Ik', 'Prkcsh', 'Acbd6', 'Atp5o-1', 'Uchl5', 'Trip12', 'Trip13', 'Hspe1', 'Rpl14', 'Dbr1', 'Snrnp40', 'Rplp1', 'Lsm1', 'Smc3', 'Pcbp1', 'Fus', 'Imp4', 'Dhx36', 'Ppat', 'Cdca4', 'Psmb5', 'Uqcrfs1', 'Ech1', 'Metap1', 'Zfp985', 'Tcp1', 'Dtymk', 'Trp53', '2210016L21Rik', 'Rpl38', 'Tpr', 'Ndufa6', 'Hmgn1', 'Lrrc42', 'Shcbp1', 'Pdia3', 'Ppib', 'Gabarap', 'Tuba1b', 'Atp6v1e1', 'Smarcd1', 'Nmd3', 'Ep400', 'Phip', 'Supt16', 'Rab11b', 'Tjp2', 'Pdia4', 'Gnl3', 'Sec22b', 'Naa38', 'Prdx5', 'Zc3h14', 'Chchd7', 'Mrpl44', 'Sra1', 'Sfr1', 'Pafah1b3', 'Ttc4', 'Eif3a', 'Glo1', 'Gmps', 'Dlat', 'Tcea3', 'Map1b', 'Nol12', 'Rps12', 'Zcchc8', 'U2af1', 'Ldha', 'Ilf2', 'Srsf10', 'Wdr33', 'Trap1', 'Ncapg', 'Mrpl3', 'Ubfd1', 'Timm8b', 'Rbx1', 'Mrfap1', 'Cope', 'Rps16', 'Phf11d', 'Rpl36', 'Polr2d', 'Hnrnpk', 'Arglu1', 'Chchd1', 'Bpnt1', 'Uchl1', 'Rap1a', 'Exosc3', 'Ier3ip1', 'Ube2t', 'Polr2j', 'Xpo1', 'Srp19', 'Suclg1', 'Srsf7', 'Dnajc24', 'Serf2', 'Fundc2', 'Cuta', 'Mrps14', 'Rrp1', 'Rrs1', 'Uqcrc1', 'Eif3d', 'Pdhb', 'Cct3', 'Rpl31', 'Spint2', 'Timeless', 'Pop4', 'Fau', 'Sf1', 'Plekhf2', 'Enah', 'Yif1a', 'Klf9', 'Pomp', 'Rpl4', 'Lrrc59', 'Serp1', 'Prpf19', 'Eftud2', 'Ppp5c', 'Sugt1', 'Cfap36', 'Mrpl49', 'Cenpn', 'Ptrh2', 'Hspa14', 'Psmd11', 'Pfdn5', 'Gatsl3', 'Oat', 'Ndufa1', 'Mettl16', 'Ptp4a2', 'Bop1', 'Set', 'Etf1', 'Sar1a', 'Hspa4', 'Cap1', 'Impa1', 'Rpl26', 'Psmc1', 'Map2k2', 'Rpl11', 'Nudcd3', 'Rnf187', 'Psmg2', 'Bri3bp', 'Ahsa1', 'Ccdc86', 'Xrn2', 'Ctnna1', 'Cox5b', 'Elp5', 'Rbbp4', 'Ak6', 'Srrm2', 'Usp39', 'Cmss1', 'Pimreg', 'Ktn1', 'Actl6a', 'Aimp2', 'Snx5', 'Brk1', 'Rbbp7', 'Rbm27', 'Tmed10', 'Rab1a', 'Pithd1', 'Bckdk', 'Rpl13a', 'Prr12', 'Dnttip2', 'Rock1', 'Eprs', 'Timm9', 'Exosc4', 'Eif3m', 'Kcmf1', 'Fn1', 'Sf3b3', 'Pop5', 'Mfsd10', 'Calm3', 'Maz', 'Eif3l', 'Thumpd3', 'Dhfr', 'Kat2a', 'Bloc1s4', 'Tial1', 'Pmf1', 'Ppa1', 'Snrpb2', 'Ssr4', 'Psmd1', '1700037H04Rik', 'Ctnnb1', 'Ndufb10', 'Bod1', 'Ola1', 'Pafah1b1', 'Msh6', 'Cetn3', 'Grwd1', 'Pten', 'Polr1d', 'Ywhaz', 'Zfr', 'Hnrnpu', 'Exosc1', 'Nap1l4', 'Nop58', 'Vars', 'Mrpl14', 'Ppa2', 'Rps13', 'Smdt1', 'Srbd1', 'L1td1', 'Acly', 'Higd1a', 'Trmt112', 'Sf3b4', 'Mrpl2', 'Bclaf1', 'Bud23', 'Ndufb9', 'Trim28', 'Cops3', 'Map1lc3b', 'Anapc5', 'Cox8a', 'Hsp90ab1', 'Ubac1', 'Ncl', 'Ezr', 'Rpl10a', 'Csnk1g2', 'Ubxn4', 'Ints14', 'Vps35', 'Ythdc1', 'Chic2', 'Snrpd2', 'Rrn3', 'Aes', 'Gid8', 'Mettl1', 'Tomm34', 'Cdkn3', 'Tomm22', 'Zpr1', 'Pdgfa', 'Mrpl52', 'Tbrg1', 'Eif4h', 'Apex1', 'Rps29', 'Mydgf', 'Nipbl', 'Cox7a2', 'Eri1', 'E2f4', 'Nol7', 'Ctbp1', 'Nudt19', 'Usp14', 'Wee1', 'Ltv1', 'Hnrnpc', 'Ago2', 'Fasn', 'Fam83d', 'Rdx', 'Cct2', 'Ndufs4', 'Maf1', 'Dnaja1', 'Hspa8', 'Slc3a2', 'H2afv', 'Dlgap4', 'Ndufab1', 'Larp7', 'Srp14', 'Marcksl1', 'Rad21', 'Mrpl11', 'BC003965', 'Ndufc2', 'Gtf2i', 'Mrps28', 'Anapc16', 'Myl12a', 'Uqcr11', 'Slirp', 'Eny2', 'Gm10076', 'Tmem183a', 'Rpl18a', 'Sf3a3', 'Nadk', 'Glud1', 'Fth1', 'Bet1', 'Fkbp1a', 'Tpt1', 'Ubxn2a', 'Tars', 'Tex261', 'Lsm7', 'Thumpd1', 'Mrpl16', 'Selenow', 'Tmsb10', 'Psmb4', 'Fam49b', 'Atad3a', 'Glrx2', 'Fam114a2', 'Pole4', 'Cox7a2l', '1110004F10Rik', 'G3bp1', 'Rex1bd', 'March7', 'Gdf3', 'Cwc27', 'Chd1', 'Atp5j2', 'Ppid', 'Nup88', 'Taf10', 'Dppa4', 'Ndufa2', 'Pfdn4', 'Kdm1a', 'Chchd10', 'Svbp', 'Yif1b', 'Ddost', 'Nol8', 'Ybx1', 'Mphosph10', 'Ociad1', 'Kmt2b', 'Erg28', 'Cox7c', 'Ppp1r7', 'Kpna2', 'Nol11', 'Hdgf', 'Ddx56', 'Taf5', 'Utp20', 'Smim11', 'Kdelr1', 'Strap', 'Cdc37', 'Eif3f', 'Aldoa', 'Rpl24', 'Dpm2', 'Mtpn', 'Traf4', 'Mrpl54', 'Rtraf', 'Taf12', 'Mbd3', 'Faap24', 'Srpk2', 'Alg13', 'C330027C09Rik', 'Cript', 'Znhit6', 'Dnajc21', 'Ube2r2', 'Arf5', 'Mrps34', 'Gtf2f2', 'Capzb', 'Snrpn', 'Rpl36a', 'Nifk', 'Sltm', 'Pcm1', 'Hk2', 'Cdc123', 'Slc25a39', 'Ctps', 'Brd4', 'Ddx1', 'Cbx7', 'Rps8', 'Ndufb6', 'Rbm7', 'Nipsnap1', 'Acvr2b', 'Rps7', 'Huwe1', 'Ubl5', 'Nsfl1c', 'Tpd52l2', '0610037L13Rik', 'Pin1', 'Rpl28', 'Odf2', 'Cct4', 'Emc2', 'Ccne1', 'Incenp', 'Hspd1', 'Arpc5l', 'Rbmxl1', 'Wdr5', 'Dhps', 'Rcor2', 'Cdk4', 'Malsu1', 'Dynll1', 'Mrpl51', 'Smndc1', 'Naa15', 'Ddx24', 'Hnrnpd', 'Dnaja2', 'Eif1b', 'Mtx1', 'Grsf1', 'Eef1g', 'Gapvd1', 'Selenof', 'Trappc13', 'Cep57', 'Rpl8', 'Smarcc1', 'Ncor1', 'Polr2m', 'Twistnb', 'Pgls', 'Faf1', 'Mettl9', 'Rab1b', 'Agpat5', 'Slc25a11', 'Slc7a3', 'Ctnnbl1', 'Cops5', 'Arf1', 'Pih1d1', 'Pir', 'Copb1', 'Krtcap2', 'Kpnb1', 'Cnn3', 'Mrps10', 'Timm17a', 'Tmbim6', 'Taf6', 'Preb', 'Eif1', 'Dynlt1f', 'Pabpc1', 'Lsg1', '1110004E09Rik', 'Bex3', 'L3mbtl2', '2410004B18Rik', 'Mrps7', 'Ywhah', 'Rheb', 'Pdha1', 'Orc2', 'Psmb1', 'Sdad1', 'Akr1a1', 'Trim59', 'Glrx3', 'Rpl21', 'Smu1', 'Gdi2', 'Fam92a', 'Rps15a', 'Aimp1', 'Nme1', 'Rps27', 'H3f3a', 'Ywhag', '1700123O20Rik', 'Banf1', 'Zfand6', 'Abce1', 'Ap3m1', 'Itgb3bp', 'Mtfr1l', 'Baz1b', 'Suds3', 'Rpn2', 'Serbp1', 'Get4', 'Fam96b', 'Wdr45b', 'Edf1', 'Atg5', 'Ndufa8', 'Hirip3', 'Eef1d', 'Pspc1', '1110008P14Rik', 'Naa16', 'Rnf10', 'Epop', 'Med6', 'Cnot3', 'Tuba1c', 'Zfp42', 'Rps9', 'Riox2', 'Gnas', 'Rala', 'Tomm5', 'Med9', 'Tgif1', 'Cisd2', 'Selenok', 'Rpf1', 'Ndufb5', 'Ppp4c', 'Bag1', 'Cmpk1', 'Mrpl47', 'Ddx54', 'Mtch2', 'Fscn1', 'Rab7', 'Psmd12', 'Prmt1', 'Rps27l', 'Oard1', 'Ube2d3', 'Mrpl57', 'D8Ertd738e', 'Oxa1l', 'Pnn', 'Gpa33', 'Rpl23a', 'Naa20', 'Tmed9', 'Rars', 'Eif2b4', 'Rbm8a', 'Ndufc1', 'Trmt1', 'Nudcd2', 'Polr2a', 'Dmac1', 'Wbp2', 'Nudc', 'mt-Nd2', 'Rbm25', 'Mybbp1a', 'Dbi', 'Ppp2ca', 'Ruvbl1', 'Sept7', 'Nt5dc2', 'Ndufb11', 'Pias2', 'Bzw1', 'Cox4i1', 'Uba1', 'Tmem14c', 'Helz', 'Fcf1', 'Samm50', 'Tgs1', 'Mat2a', 'Rtf2', 'H2afz', 'Prmt5', 'St13', 'Rps18', 'Rpl6', 'Rps3a1', 'Acadm', 'Cyb5b', 'Sap30', 'Glyr1', 'Rpl34', 'Psmc4', 'Orc5', 'Aven', 'Myo10', 'Snrpf', 'Exosc8', 'Rhoa', 'Wdr77', 'Ubald2', 'Itm2b', 'Aco2', 'Phf5a', 'Ndufs6', 'Ss18', 'Eef1akmt1', 'Cox7b', '2610318N02Rik', 'Rps19bp1', 'Ndufs8', 'Wdr12', 'Ubxn6', 'Rpl41', 'Serpinb6a', 'Snf8', 'Melk', 'Znhit3', 'Taldo1', 'Atp5j', 'Rpp25l', 'Srm', 'Rnaseh2a', 'Nubp2', 'Dbnl', 'Ndufv1', 'Chd4', 'Ubxn1', 'Abhd17a', 'Malat1', 'Nelfcd', 'Ngrn', 'Mcl1', 'Slc25a3', 'Adipor1', 'Jup', 'Ddx39', 'Rpl37', 'Hnrnpa2b1', 'Thap11', 'Hpf1', 'Ubtf', 'Ndufs7', 'Bud31', 'Chtop', 'Prelid1', 'Phc1', 'Snx3', 'Nedd8', 'Ppm1g', 'Emg1', 'Wdr43', 'Lage3', 'Ppp2r1a', 'Mrps17', 'Ppp1ca', 'Cycs', 'Wdr75', 'Ddx42', 'Cct8', 'Aasdhppt', 'Nop9', 'Brd8', 'Maea', 'Adss', 'Ppia', 'Ddx21', 'Npm3', 'Arl2', 'Rpl22l1', 'Mrps15', 'Mrpl22', 'Ost4', 'Timm44', 'Rbm17', 'Akirin2', 'Mrpl58', 'Gtf2b', 'Mcm10', 'Rps28', 'Usf1', 'Eif3h', 'Ssb', 'Usp48', 'Mlf2', 'Ptpn2', 'Mkrn1', 'Abhd14a', 'Trim24', 'Mrpl37', 'Rwdd1', 'Elof1', 'Jagn1', 'Park7', 'Tex10', 'Impdh2', 'Atp5h', 'Ctbp2', 'Ccdc59', 'Dppa5a', 'Dnajc7', 'Rpl32', 'Mrpl19', 'Gm10036', '1810058I24Rik', 'Ddx41', 'Mrpl18', 'Rab2a', 'Psmg1', 'Slc38a2', 'Thop1', 'Fibp', 'Nop2', 'Vta1', 'Rpl13', 'Mmadhc', 'Gars', 'Zfp428', 'Rnf5', 'Skp1a', 'Rtf1', 'Nob1', 'Sgk1', 'U2surp', 'Phf20', 'Alyref', 'Nckap1', 'Cacul1', 'Epn1', '2810004N23Rik', 'Prdx2', 'Vapa', 'mt-Nd5', 'Sdhb', 'Fkbp4', 'Tmem165', 'Chmp1a', 'Ostc', 'Tra2a', 'Gapdh', 'Naa50', 'Clp1', 'Rbm22', 'Larp1', 'Thoc3', 'Pycard', 'Tdh', 'Capns1', 'Dnajc5', 'Smc2', 'Psmd8', 'Nip7', 'Gspt1', 'Nisch', 'Ythdf2', 'Kif22', 'Spc24', 'Eif4a3', 'Mrto4', 'Snrpa', 'Vcp', 'Nsa2', 'Rbm39', 'Srsf9', 'Prpf31', 'Gnai2', 'Gtpbp4', 'Mrps18a', 'Eri3', 'Psma2', 'Nup43', 'Med19', 'Mapk1', 'Utp4', 'Cox6c', 'Adrm1', 'Nfu1', 'Mga', 'Rangrf', 'Luc7l2', 'Ralbp1', 'Grk6', 'Senp3', 'Rpl12', 'Tkt', 'Trim27', '2010107E04Rik', 'Canx', 'Rpl35a', 'Itpa', 'Rplp0', 'Dhx15', 'Thyn1', 'Nxf1', 'Srsf6', 'Ddx10', 'Ncbp1', 'Eif3i', 'Cs', 'Hnrnpa0', 'Bcat2', 'Ndufa9', 'Rabggtb', 'Sec62', 'Idh3g', 'Mrps9', 'Copz1', 'Ppp1r11', 'Kif18a', 'Ccnh', 'Pcgf2', 'Blmh', 'Nosip', 'Siva1', 'Nde1', 'Csde1', 'Slc6a6', 'Mrpl24', 'Mrpl36', 'Etv5', 'Arl6ip6', 'Dkc1', 'Abcf1', 'Marcks', 'Gsta4', 'Fam204a', 'Sf3b2', 'Dars', 'Srsf11', 'Mrps35', 'Lsm12', 'Gpx1', 'Dusp12', 'Phb2', 'Nae1', 'Trim71', 'Cenpw', 'Rrbp1', 'Ndufa5', 'Snrpd3', 'Rplp2', 'Rnmt', 'Ciapin1', 'Hikeshi', 'Mcm3', 'Uqcrc2', 'Rps2', 'Atxn10', 'Atic', 'Dap3', 'Ddb1', 'Yeats4', 'Polr2f', 'Cct7', 'Atp6v1d', 'Dynlrb1', 'Racgap1', 'Krr1', 'Rps11', 'Napa', 'Znhit1', 'Ttc1', 'Txnrd1', 'Med25', 'Syf2', 'Dnajc15', 'Mdh2', 'Morc1', 'Ldb1', 'Csnk1a1', 'Eef1b2', 'Pmm1', 'Rpl7a', 'Timm22', 'Cox11', 'Tnpo3', 'Immp1l', 'Tecr', 'Rcc2', 'Pinx1', 'Slc24a5', 'Vps28', 'Zfp771', 'H2afx', 'Gpatch4', 'Ptges3', 'Mpp6', 'Tbcb', 'Rab14', 'Atox1', 'Pcbp4', 'Ubr5', 'Sbds', 'Farsa', 'Gemin5', 'Rpl9-ps6', 'Eno1', 'Actr3', 'Mif4gd', 'Psma7', 'Cdc26', 'Pdia6', 'Eif6', 'C1qbp', 'Kdm5b', 'Nufip1', 'Bptf', 'Mrpl21', 'Ndufb7', 'Mrpl45', 'Coa3', 'Dis3', 'Dgcr6', 'Vbp1', 'Mphosph6', 'Hnrnpa1', 'Akap8', 'Arrdc4', 'Pgd', 'Crls1', 'Fbxo5', 'Dcps', 'Seh1l', 'Tmem160', 'Uqcr10', 'Mrpl12', 'Srrm1', 'Senp6', 'Ndufb8', 'Rps19', 'Fzr1', 'Psmb3', 'Tbca', 'Plp2', 'Fh1', 'Eif4g2', 'Sar1b', 'Nap1l1', 'Sec61b', 'Gcsh', 'Eef2', 'Dnmt3b', 'Map2k1', 'Hsp90aa1', 'Fbxo22', 'Ranbp1', 'Yme1l1', 'Atp1b3', 'Epb41l4aos', 'Prrc2c', 'Lamtor4', 'Slc28a1', 'Ftsj3', 'Nfyb', 'Cul3', 'Ubap2', 'Ppan', 'Pabpc4', 'Sin3b', 'Guk1', 'Snu13', 'Nubp1', 'Rab8a', 'Tceal9', 'Mrps16', 'Ppdpf', 'Hprt', 'Zmat2', 'Hmgn2', 'Ezh2', 'Cul2', 'Eif4e2', 'Cops9', 'Coil', 'Chchd4', 'Rbm28', 'Caprin1', 'Urod', 'Rsl24d1', 'Mrpl17', 'Pa2g4', 'Esf1', 'Cpsf6', 'Mrps12', 'Eif3k', 'Cacybp', 'Pum1', 'Taf11', 'Gpbp1', 'Swi5', 'Wapl', 'Gatad2a', 'Snrpb', 'Sde2', 'Wdr89', '2310061I04Rik', 'Stmn2', 'mt-Nd1', 'Lmnb1', 'Mcm7', 'Supt5', 'Ccar1', 'Rsl1d1', 'Rpl37a', 'Bex1', 'Smarcad1', 'Ppig', 'Bms1', 'Supt4a', 'Sgo1', 'Atp5d', 'Acot9', 'Nup37', 'Prrc2a', 'Psmb7', 'Daxx', 'Smarca5', 'Ube2m', 'Lamtor5', 'Atp5g1', 'Ywhaq', 'Mrps24', 'Sod2', 'Sf3b5', 'Thg1l', 'Echs1', 'Prmt7', 'Ufm1', 'Ptdss2', 'Vti1b', 'Srp9', 'Utp11', 'Psma1', 'Ak2', 'Ybx3', 'Ubl4a', 'Pym1', 'Ndufb3', 'Gab1', 'Traf7', 'Mtfr1', 'Mrpl27', 'Mpdu1', 'Dicer1', 'Supt20', 'Lamp1', 'Ska1', 'Sub1', 'Slc16a1', 'Cdv3', 'Sephs2', 'Epcam', 'Ghitm', 'Hspa9', 'Tmem230', 'Trappc4', 'Dstn', 'Gclm', 'Ryk', 'Csnk2b', 'Tmem11', 'mt-Nd4', 'Rps17', 'Birc6', 'Zcchc10', 'Kif20a', 'Pla2g1b', 'Rrp9', 'Rpp30', 'Rcc1', 'Dcakd', 'Cwc15', 'Ptma', 'Ngdn', 'Psmd2', 'Dmap1', 'Skiv2l2', 'Vdac1', 'Parp1', 'Bola3', 'Rps20', 'Dnajc11', 'Appbp2', 'Igf2bp1', 'Morc3', 'Chmp2a', 'Spcs1', 'Ube2j2', '4833439L19Rik', 'Calm1', 'Ddx39b', 'Srsf2', 'Zwint', 'Clint1', 'Ehd1', 'Nedd4', 'Dpp3', 'Mrps21', 'Vdac3', 'Mif', 'Dtd1', 'Nup35', 'Eif2b5', 'Ppp2r2d', 'Eif4e', 'Hnrnpr', 'Ppih', 'Gnb1', 'Xrcc5', 'Lyplal1', 'Matr3', 'Akr1b3', 'Hmgcs1', 'Prelid3b', 'Zfand5', 'Lars', 'Ufc1', 'Bola2', 'Bsg', 'Dnajc2', 'Ankrd17', 'Las1l', 'Eif3e', 'Dctn2', 'Lsm2', 'Tpi1', 'Eif2a', 'Gng5', 'Ndufa13', 'Baz2a', 'Hint1', 'Zfp706', 'H2afy', 'Cpsf2', 'Anapc2', 'Hnrnpul2', 'Tsr1', 'Uba2', 'Rps24', 'Chmp4b', 'Tmem258', 'Dus1l', 'Ppp1r2', 'Atp5c1', 'Cst3', 'Slc25a5', 'Rac1', 'Denr', 'Aggf1', 'Thrap3', 'Jarid2', 'Esco2', 'Gfpt2', 'Dda1', 'Fam136a', 'Hax1', 'Tmem126a', 'Rtcb', 'Kat6b', 'Usp34', '1110038F14Rik', 'Timm50', 'Zfp979', 'Atp5f1', 'Polr2e', 'Ndufs2', 'Gemin6', 'Kdelr2', 'Naca', 'Hat1', 'Cnot7', 'Ergic3', 'Sgo2a', 'Jpt1', 'Hdlbp', 'Rab24', 'Poldip2', 'Cuedc2', 'Tspan31', 'Psme3', 'Lap3', 'Nucks1', 'Gpn1', 'Csrp2', 'Rps3', 'Utp14a', 'Rpl23', 'Tcf3', 'Scamp3', 'Dctn3', 'Nono', 'Immt', 'Tufm', 'Rbpms2', 'Smc6', 'Ggnbp2', 'Dbf4', 'Mrpl1', 'Metap2', 'Rpl7l1', 'Atp5g3', 'Ankrd11', 'Lsm8', 'Bcap31', 'Med7', 'Rif1', 'Med10', 'Adh5', 'Eif5a', 'Psma5', 'Pbdc1', 'Use1', 'Prkar1a', 'Rpl9', 'Nop56', 'Ccna2', 'Polr3k', 'Ubl3', 'Vps26a', 'Rrp1b', 'Utf1', 'Timm13', 'Prpf38b', 'Pgp', 'Wbp11', 'Cdk2ap1', 'Chmp5', 'Pelp1', 'Psmc3', 'Cops8', '9130401M01Rik', 'Nanog', 'Sfswap', '1810037I17Rik', 'Uri1', 'Eif4a2', 'Rps15', 'Uck2', 'Qrich1', 'Ddx27', 'Cdkn2aipnl', 'Dazap1', 'Mrps18c', 'Cdk2ap2', 'Hmgxb4', 'Ccdc124', 'Ubb', 'Rpl27', 'Nxt1', 'Nsd1', 'Lias', 'Mrpl34', 'Fis1', 'Kif5b', 'Laptm4a', 'Arid1a', 'Tax1bp1', 'Ccnf', 'Mrpl20', 'Chchd2', 'Pdcd10', 'Pdlim1', 'Cct5', 'Noc2l', 'Ap2m1', 'Tmem256', 'Scaf11', 'Emc10', 'Rpn1', 'Aprt', 'Sdhd', 'Cd2bp2', 'Ppil1', 'Ppp4r2', 'Pak2', 'Gtf2e2', 'Rexo2', 'Actn4', 'Hnrnpm', 'Ywhae', 'Noc4l', 'Snrnp200', 'Fam32a', 'Cnih4', 'Pfn1', 'Rpl19', 'Bub3', 'Cnpy2', 'Spcs2', 'Rap1b', 'Tomm20', 'Eml4', 'Ebp', 'Med30', 'Tmbim4', 'Mapk3', 'Eef1a1', 'Mcf2', 'Lsm5', 'Fam162a', 'Akap12', 'Mrps30', 'Uqcc3', 'Snrnp25', 'Ddx3x', 'Tomm40', 'Otub1', 'Mlec', 'Farsb', 'Polr2g', 'Rnf4', 'Glrx5', 'Pdcl3', 'Rps10', 'Znrd1', 'Gtf2a2', 'Eif5b', 'Rraga', 'Armc1', 'Usmg5', 'Gins4', 'Thoc2', 'Nsmce2', 'Morf4l2', 'Cdca5', 'March5', 'Cisd1', 'Mrpl13', 'Mrpl50', 'Ndufa11', 'Rack1', 'Copb2', 'Txnl4a', 'Smn1', 'Eif1a', 'Hsd17b12', 'Rae1', 'Nop53', 'Rps23', 'Gadd45gip1', 'Mad2l1', 'Ube2f', 'Rnf7', 'Zranb2', 'Rest', 'Sf3b6', 'Arfrp1', 'Ptbp1', 'Zswim7', 'Dek', 'Ddx18', 'Asf1a', 'Mapre1', 'Cyb5a', 'Slc25a1', 'Tmem97', 'Psmd9', 'Ndufa10', 'Ing1', 'Anapc13', 'Wdr18', 'Fgfr1op2', 'Csnk2a1', 'Ddx52', 'Clstn3', 'Elavl1', 'Rpl15', 'Scd2', 'Ier2', 'Srsf1', 'Psmc2']}
Primed novel cc genes: 779 new S genes; 2207 new G2M genes
{'S': ['Ddx1', 'Rps8', 'Psmb2', 'Mrpl42', 'Prdx1', 'Rps7', 'Snrpd1', 'Paics', 'Pin1', 'Mak16', 'Rpl28', 'Cct4', 'Psmd6', 'Ccne1', 'Fbl', 'Hspd1', 'Arpp19', 'Rbmxl1', 'Gtf3c6', 'Lig1', 'Rpl18', 'Cdk4', 'Dynll1', 'Tuba4a', 'Ddx24', 'Dnaja2', 'Hnrnpd', 'Rplp1', 'Eef1g', 'Selenof', 'Rpl8', 'Smarcc1', 'Rps21', 'Uqcrq', '2410015M20Rik', 'Parp2', 'Cops5', 'Arf1', 'Cox6b1', 'Pum3', 'Ddx5', 'Kpnb1', 'Dut', 'Bax', 'Pdcd6', 'Dctpp1', 'Timm17a', 'Eif1', 'Prdx6', 'Pabpc1', 'Lsg1', 'Bex3', 'Rrp15', 'Prpf38a', 'Ube2k', 'Cd3eap', 'Ywhah', 'Orc2', 'Psmb1', 'Akr1a1', 'Rps14', 'Rpl21', 'Uqcrb', 'Nop14', 'Gdi2', 'Uchl3', 'Fkbp8', 'Txndc17', 'Psmc5', 'Rps15a', 'Aimp1', 'Nme1', 'Rps27', 'H3f3a', 'Rps25', 'Banf1', 'G3bp2', 'Abce1', 'Smarca4', 'Npm1', 'Baz1b', 'Serbp1', 'Eef1d', 'Parl', 'Lsm4', 'Eif2s1', 'Rnf10', 'Taf7', 'Mrpl30', 'Zfp622', 'Rer1', 'Rps9', 'Pcgf6', 'Rfc5', 'Btf3', 'Clns1a', 'Erh', 'Tomm5', 'Txnl1', 'Dnajc19', 'Stoml2', 'Ndufb5', 'Ppp4c', 'Srsf3', 'Bag1', 'Cnbp', 'Gtf2h5', 'Eloc', 'Eif3j2', 'Mtch2', 'Fscn1', 'Cdc5l', 'Psmd12', 'Rpl17', 'Prmt1', 'Pfdn6', 'Suz12', 'Atp5a1', 'Rps27l', 'Sem1', 'Oard1', 'Ube2d3', 'D8Ertd738e', 'Pnn', 'Rpl23a', 'Rps27a', 'Snrpg', 'Topors', 'Cebpz', 'Qdpr', 'Tfdp1', 'Rars', 'Pdcd5', 'Rbm8a', 'Ndufc1', 'Anp32b', 'Polr2a', 'Eif5', 'Nudc', 'Rbm25', 'Eif4ebp1', 'Mybbp1a', 'Dbi', 'Pfdn2', 'Ppp2ca', 'Ruvbl1', 'Rpl30', 'Sept7', 'Srpk1', 'Rfc3', 'Bzw1', 'Rpl35', 'Cox4i1', 'Fcf1', 'Gar1', 'Samm50', 'Psmd7', 'Mat2a', 'H2afz', 'Trnt1', 'St13', 'Rps18', 'Mtf2', 'Rpl6', 'Actb', 'Pno1', 'Cyb5b', 'Tcerg1', 'Rpl34', 'Psmc4', 'Cfdp1', 'Psmc6', 'Snrpf', 'Rhoa', 'Atad5', 'Wdr77', 'Umps', 'Phf5a', 'Ndufs6', 'Psma4', 'Mtdh', 'Cox7b', 'Rpl41', 'Snf8', 'Rad23b', 'Cdc25a', 'Dnmt1', 'Ndufv2', 'Psma3', 'Znhit3', 'Atp5j', 'Ddx46', 'Rbm42', 'Taldo1', 'Rnaseh2a', 'Nubp2', 'Sarnp', 'Eed', 'Rpl3', 'Ndufv1', 'Chd4', 'Ubxn1', 'Emc6', 'Mcl1', 'Ssrp1', 'Ctps', 'Slc25a3', 'Ddx39', 'Rpl37', 'Hnrnpa2b1', 'Ubtf', 'Hpf1', 'Rpl10', 'Clta', 'Snx3', 'Emg1', 'Ppm1g', 'Lage3', 'Dnajc8', 'Wdr43', 'Ppp1ca', 'Rps5', 'Cct8', 'Adss', 'Ddx21', 'Ppia', 'Cyc1', 'Asna1', 'Rpsa', 'Srsf1', 'Sssca1', 'Mcm10', 'Rps28', 'Uqcrh', 'Eif3h', 'Ssb', 'Mlf2', 'Eif3b', 'Clpp', 'Mkrn1', 'Mdh1', 'Purb', 'Nop10', 'Tex10', 'Snrpe', 'Dcun1d5', 'Impdh2', 'Cops6', 'Atp5h', 'Dnajc7', 'Puf60', 'Rpl32', 'Gm10036', 'Sf3a1', 'Psmb6', 'Mrpl18', 'Txn1', 'Cox6a1', 'Psmg1', 'Thop1', 'Tra2b', 'Rpl13', 'Cul4b', 'Arhgdia', 'Rpl39', 'mt-Co1', 'Sap18', 'U2surp', 'Phf20', 'Alyref', 'Rps6', 'Minos1', 'Prdx2', 'Vapa', 'Fkbp4', 'Cenpx', 'Luc7l3', 'Bzw2', 'Ostc', 'Mphosph8', 'Nhp2', 'Gapdh', 'Naa50', 'Hnrnpf', 'Thoc3', 'Stip1', 'Cenph', 'Cbx1', 'Smc2', 'Psmd8', 'Gspt1', 'Nip7', 'Spc24', 'Eif4a3', 'Mrto4', 'Atpif1', 'Vcp', 'H3f3b', 'Vdac2', 'Rbm39', 'Srsf9', 'Gtpbp4', 'Prpf31', 'Psma2', 'Chaf1a', 'Rps26', 'Tk1', 'Capza2', 'Nup43', 'Ndufa7', 'Psma6', 'Cox6c', 'Adrm1', 'Aurkaip1', 'Bcas2', 'Ebna1bp2', 'Nolc1', 'Yrdc', 'Ran', 'Senp3', 'Rpl12', 'Fxr1', 'Orc6', 'Tomm70a', 'Grpel1', 'Tkt', 'Trim27', '2010107E04Rik', 'Rpl35a', 'Rplp0', 'Itpa', 'Lsm6', 'Dhx15', 'Srsf6', 'Eif3i', 'Hnrnpa0', 'Rfc1', 'Ipo5', 'Nudt21', 'Dad1', 'Ppp1r14b', 'Exosc7', 'Lyar', 'Siva1', 'Csde1', 'Abcf1', 'Tpm3', 'Gsta4', 'Ccnd1', 'Phax', 'Sf3b2', 'Srsf11', 'Nsmce4a', 'Gpx1', 'Lsm12', 'Psip1', 'Eif1ax', 'Phb2', 'Trim71', 'Fkbp3', 'Snrpd3', 'Pcbp2', 'Ndufa5', 'Kpna3', 'Sfxn1', 'Rplp2', 'Ciapin1', 'Rpl27a', 'Bccip', 'Hikeshi', 'Top1', 'Mcm3', 'Uqcrc2', 'Gart', 'Ssbp1', 'Rps2', 'Atp5b', 'Eif1ad', 'Eef1e1', 'Dpy30', 'Rpl5', 'Lsm3', 'Polr2i', 'Cct7', 'Hnrnpdl', 'Rps11', 'Prpf40a', 'Nsun2', 'Pak1ip1', 'Mdh2', 'Csnk1a1', 'Eef1b2', 'Rpl7a', 'Polr1c', 'Eif3g', 'Ssr2', 'Eif4ebp2', 'Gsr', 'Srsf5', 'Rcc2', 'Elob', 'Rnf138', 'Rpl22', 'Sf3b1', 'Cfl1', 'Ptges3', 'Tcof1', 'Plekhj1', 'Pkm', 'Eif4a1', 'Atox1', 'Cdc34', 'Usp7', 'Tsn', 'Cdc42', 'Magoh', 'Pdia6', 'Eno1', 'Psma7', 'Cdc26', 'Farsa', 'Eif6', 'Psmd4', 'Gga2', 'C1qbp', 'Psmd14', 'Cox5a', 'Mrpl21', 'Mrpl35', 'Hnrnpa1', 'Akap8', 'C1d', 'Eif2b1', 'Brix1', 'Fbxo5', 'Srrt', 'Pdap1', 'Eif3c', 'Hnrnpab', 'Uqcr10', 'Rps4x', 'Ndufa4', 'Mrpl12', 'Srrm1', 'Tomm7', 'Rps19', 'Psmb3', 'Acin1', 'Eif4g2', 'Mrpl40', 'Sec61b', 'Nap1l1', 'Rpl7', 'Gcsh', 'Zc3h15', 'Dnmt3b', 'Kars', 'Hsp90aa1', 'Ranbp1', 'Brd3', 'Prrc2c', 'Prps1', 'Uchl5', 'Ftsj3', 'Atp5o-1', 'Nfyb', 'Hspe1', 'Rpl14', 'Pabpc4', 'Snrnp40', 'Lsm1', 'Guk1', 'Snu13', 'Smc3', 'Imp4', 'Pcbp1', 'Fus', 'Rab8a', 'Mrps16', 'Ppat', 'Hprt', 'Zmat2', 'Ezh2', 'Psmb5', 'Tcp1', 'Dtymk', 'Trp53', 'Chchd4', 'Rpl38', 'Caprin1', 'Rsl24d1', 'Tpr', 'Hmgn1', 'Ints11', 'Mrpl17', 'Pa2g4', 'Tuba1b', 'Cacybp', 'Cpsf6', 'Mrps12', 'Eif3k', 'Swi5', 'Gatad2a', 'Supt16', 'Snrpb', 'Sde2', 'Gnl3', 'mt-Nd1', 'Sfr1', 'Lmnb1', 'Eif3a', 'Mcm7', 'Rpa1', 'Ccar1', 'Rsl1d1', 'Rpl37a', 'Gmps', 'Bex1', 'Rps12', 'U2af1', 'Supt4a', 'Ilf2', 'Atp5d', 'Psmb7', 'Smarca5', 'Atp5g1', 'Timm8b', 'Ywhaq', 'Rbx1', 'Hnrnpk', 'Chchd1', 'Mrfap1', 'Sf3b5', 'Rpl36', 'Polr2d', 'Rps16', 'Arglu1', 'Polr2j', 'Srp19', 'Srsf7', 'Psma1', 'Mrps14', 'Ak2', 'Ybx3', 'Ndufb3', 'Uqcrc1', 'Eif3d', 'Rpl31', 'Cct3', 'Sub1', 'Fau', 'Cdv3', 'Hspa9', 'Pomp', 'Rpl4', 'Lrrc59', 'Serp1', 'Csnk2b', 'Prpf19', 'Sugt1', 'Rps17', 'Zcchc10', 'Ptrh2', 'Hspa14', 'Psmd11', 'Pfdn5', 'Gpd2', 'Rcc1', 'Set', 'Etf1', 'Hspa4', 'Ptma', 'Rpl26', 'Psmd2', 'Rpl11', 'Vdac1', 'Rps20', 'Bri3bp', 'Igf2bp1', 'Ahsa1', 'Morc3', 'Cox5b', 'Srrm2', 'Rbbp4', 'Calm1', 'Ddx39b', 'Srsf2', 'Nedd4', 'Actl6a', 'Mif', 'Snx5', 'Ppp2r2d', 'Gnb1', 'Matr3', 'Prelid3b', 'Dnttip2', 'Eprs', 'Eif3m', 'Dnajc2', 'Las1l', 'Eif3e', 'Lsm2', 'Eif3l', 'Eif2a', 'Tpi1', 'Dhfr', 'Baz2a', 'Hint1', 'Zfp706', 'Cpsf2', 'Tsr1', 'Ppa1', 'Psmd1', 'Snrpb2', 'Rps24', 'Ndufb10', 'Uba2', 'Ctnnb1', 'Tmem258', 'Slc25a5', 'Atp5c1', 'Ola1', 'Msh6', 'Cetn3', 'Grwd1', 'Fam136a', 'Rtcb', 'P4hb', 'Nop58', 'Atp5f1', 'Ndufs2', 'Polr2e', 'Naca', 'Hat1', 'Rps13', 'L1td1', 'Acly', 'Higd1a', 'Ube2a', 'Lap3', 'Bclaf1', 'Nucks1', 'Csrp2', 'Cops3', 'Ndufb9', 'Rps3', 'Trim28', 'Utp14a', 'Rpl23', 'Tcf3', 'Zmynd19', 'Anapc5', 'Cox8a', 'Hsp90ab1', 'Ncl', 'Ezr', 'Rpl10a', 'Rbpms2', 'Smc6', 'Metap2', 'Rpl7l1', 'Atp5g3', 'Lsm8', 'Snrpd2', 'Ankrd11', 'Rif1', 'Eif5a', 'Tomm22', 'Adh5', 'Psma5', 'Rpl9', 'Eif4h', 'Rps29', 'Apex1', 'Rrp1b', 'Timm13', 'Pgp', 'Cox7a2', 'E2f4', 'Supt6', 'Cdk2ap1', 'Pelp1', 'Psmc3', '1810037I17Rik', 'Uck2', 'Rps15', 'Hnrnpc', 'Ddx27', 'Cdkn2aipnl', 'Dazap1', 'Ccdc124', 'Rpl27', 'Ubb', 'Cct2', 'Nxt1', 'Dnaja1', 'Mrpl34', 'Hspa8', 'H2afv', 'Mrpl20', 'Shmt1', 'Chchd2', 'Cct5', 'Scaf11', 'Aprt', 'Sdhd', 'Ppil1', 'Myl12a', 'Uqcr11', 'Syce2', 'Slirp', 'Gtf2e2', 'Rexo2', 'Actn4', 'Hnrnpm', 'Eif2s2', 'Ywhae', 'Rpl18a', 'Sf3a3', 'Fam32a', 'Cnih4', 'Pfn1', 'Rpl19', 'Fkbp1a', 'Tpt1', 'Lsm5', 'Eef1a1', 'Tmsb10', 'Psmb4', 'Tomm40', 'Ddx3x', 'Polr2g', '1110004F10Rik', 'G3bp1', 'Rps10', 'Atp5j2', 'Ppid', 'Znrd1', 'Taf10', 'Gtf2a2', 'Kdm1a', 'Eif5b', 'Pfdn4', 'Slc9a3r1', 'Ybx1', 'Usmg5', 'Cox7c', 'Cisd1', 'Hdgf', 'Ndufa11', 'Rack1', 'Txnl4a', 'Smn1', 'Strap', 'Eif1a', 'Cdc37', 'Eif3f', 'Aldoa', 'Rpl24', 'Rps23', 'Rtraf', 'Mbd3', 'Rnf7', 'Cript', 'Sf3b6', 'Rest', 'Dnajc21', 'Ptbp1', 'Dek', 'Ddx18', 'Rpl36a', 'Nifk', 'Wdr18', 'Rpl15', 'Rfc4', 'Slc25a39', 'Polr2f', 'Psmc2', 'Brd4'], 'G2M': ['Mrpl42', 'Prdx1', 'Frg1', 'Mcts1', 'Grb2', 'Snrpd1', 'Ppif', 'Paics', 'Rhno1', 'Eif2b3', 'Mak16', 'Tusc2', 'Cnih1', 'Psmd6', 'Lin28a', 'Pfdn1', 'Lig1', 'Zfp91', 'Hsd17b10', 'Ndufaf8', 'Rps6ka1', 'Nup133', 'Bub1b', 'Tceal8', 'Tlk1', 'Kmt5a', 'Cul5', 'Lman1', 'Nub1', 'Ivns1abp', 'Uqcrq', 'Hras', 'Zc2hc1a', 'Ddx5', 'Pdcd11', 'Tsg101', 'Rnf149', 'Dcaf1', 'Plekha1', 'Rbm26', 'Scand1', 'Prpf38a', 'Chd8', 'Zfp106', 'Agfg1', 'Uqcrb', 'Nop14', 'Fkbp8', 'Txndc17', 'Nudt2', 'Impact', 'Lman2', 'Tbl1x', 'G3bp2', 'Atp5k', 'Usp10', 'Bex2', 'Hsp90b1', 'Pebp1', 'Plaa', 'Ndufaf3', 'Bola1', 'Lsm4', 'Brd2', 'Taf7', 'Gemin2', 'Celf1', 'Nipsnap3b', 'Prpf4b', 'Btf3', 'Elovl6', 'Hacd2', 'Txnl1', 'Dnajc19', 'Rbm5', 'Trmt10c', 'Cnbp', 'Gtf2h5', 'Eif3j2', 'Cdc5l', 'Gnl1', 'Cops4', 'Mars', 'Pfdn6', 'Suz12', 'Atp5a1', 'Paip2', 'Commd4', 'Jtb', 'Plk1', 'Msn', 'Naf1', 'Pmpcb', 'Ppil4', 'Haus1', 'Topors', 'Cebpz', '1110008F13Rik', 'Hbs1l', 'Fdft1', 'Raf1', 'Rbbp6', 'Paf1', 'Anp32b', 'Prdx3', 'Leprotl1', 'Eif4ebp1', 'Endog', 'Pfdn2', 'Gm47283', 'Rpl30', 'Pold2', 'Ddt', 'Anp32a', 'Senp2', 'Mtf2', 'Pno1', 'Fip1l1', 'Upf3a', 'Pwp1', 'Rpf2', 'Cfdp1', 'Sdf4', 'Pes1', 'Taf1d', 'Ccdc58', 'Trnau1ap', 'Dnajc9', 'Atp5e', 'Dnmt1', 'Arl6ip1', 'Psma3', 'Hdgfl2', 'Nmt2', 'Ddx46', 'Rbm42', 'Cebpzos', 'Commd8', 'Mrps31', 'Fam104a', 'Snw1', 'Coq7', 'Nelfe', 'Ptms', 'Psmg4', 'Rpl10', 'Cyb5r3', 'Atp6v1g1', 'Dnajc8', 'Cfl2', 'Htatsf1', 'Cyc1', 'Cep164', 'Sssca1', 'Eif3b', 'Clpp', 'Utp3', 'Ap2s1', 'Eif4g1', 'Phf14', 'Nop10', 'Mob4', 'Actr2', 'Hibadh', 'Snrpe', 'Mtx2', 'Cops6', 'Ncaph', 'Got2', 'Puf60', 'Mrpl32', 'Med8', 'Psmb6', 'Macf1', 'Cox6a1', 'Cul1', 'Smarcb1', 'Smap1', 'Xrcc1', 'Cmas', 'Cdt1', 'Tra2b', 'Got1', 'Arhgdia', 'Rsrc2', 'Rpl39', 'Fem1b', 'Zfp990', 'mt-Co1', 'Sap18', 'Commd2', 'Luc7l3', 'Bnip3l', 'Heatr1', 'Nelfa', 'Cenpp', 'Hnrnpf', 'Mthfd1', 'Cnot2', 'Impa2', 'Pam16', 'Zfp593', 'Gsto1', 'Gclc', 'Vdac2', 'Ubr4', 'Mcrs1', 'Tfam', 'Rps26', '2310033P09Rik', 'Stard3nl', 'Ccni', 'Arpc2', 'Ebna1bp2', 'Nolc1', 'Ran', 'Rtn4', 'Cwf19l2', 'Smco4', 'Bod1l', 'Fxr1', 'Brd7', 'Elp2', 'Pmpca', 'Ipo5', 'Trappc6b', 'Exosc7', 'Actr10', 'Kras', '1190007I07Rik', 'Cenpc1', 'Rcl1', 'Lef1', 'Tprgl', 'Ccnd1', 'Rab10', 'Phax', 'Gnai3', 'Mrpl46', 'Mrps25', 'Mff', 'Fkbp3', 'Pcbp2', 'Sfxn1', 'Rpl27a', 'Twf1', 'Gart', 'Ssbp1', 'Unc50', 'Eif1ad', 'H1fx', 'Dst', 'Eef1e1', 'Dpy30', 'Rpl5', 'Crnkl1', 'Lsm3', 'Med17', 'Txndc9', 'Son', 'Hnrnpdl', 'Pak1ip1', 'Stk16', 'Ccz1', 'Fnta', 'Sigmar1', 'Mrps26', 'Cenpv', 'Eif3g', 'Eif4ebp2', 'Srsf5', 'Rbpms', 'Elob', 'Rnf138', 'Acat2', 'Nme4', 'Cse1l', 'Cfl1', 'Hnrnpl', 'Meaf6', 'Plekhj1', 'Eif4a1', 'Cdc34', 'Sbno1', 'Usp7', 'Tsn', 'Cdc42', 'Bcl10', 'Fiz1', 'Psmd4', 'Pitpna', 'Psmd14', 'Rnf126', 'Iars', 'Zc3h13', 'Mrpl35', 'C1d', 'Brix1', 'Srrt', 'Nsmce1', 'Eif3c', 'Fkbp11', 'Car2', 'Rps4x', 'Ndufa4', 'Ube2e3', 'Tomm7', 'Rnf220', 'Acin1', 'Gfer', 'Stub1', 'Zc3h15', 'Hnrnph1', 'Sec31a', 'Brd3', 'Acbd6', 'M6pr', 'Atp5o-1', 'Bora', 'Trip13', 'Rpl14', 'Pex13', 'Lsm1', 'Pcbp1', 'Fus', 'Dhrs7b', 'Mta2', 'Psmb5', 'Uqcrfs1', 'Metap1', 'Tcp1', 'Dtymk', 'Gpn3', 'Nfe2l2', 'Rpl38', 'Tpr', 'Ndufa6', 'Ppib', 'Stag2', 'Supt16', 'Rab11b', 'Pdia4', 'Mcrip1', 'Gnl3', 'Sec22b', 'Naa38', 'Zc3h14', 'Chchd7', 'Sra1', 'Sfr1', 'Pafah1b3', 'Ttc4', 'Dlat', 'Rps12', 'U2af1', 'Ldha', 'Ilf2', 'Wdr33', 'Ncapg', 'Mrpl3', 'Ubfd1', 'Rbx1', 'Me2', 'Rps16', 'Rpl36', 'Polr2d', 'Arglu1', 'Ube2t', 'Polr2j', 'Suclg1', 'Dnajc24', 'Serf2', 'Dld', 'Cuta', 'Mrps14', 'Rrs1', 'Uqcrc1', 'Eif3d', 'Rpl31', 'Spint2', 'Timeless', 'Pop4', 'Fau', 'Sf1', 'Ecd', 'Rpl4', 'Lrrc59', 'Serp1', 'Prpf19', 'Eftud2', 'Tdp1', 'Mrpl49', 'Cenpn', 'Ttc14', 'Mvb12a', 'Ptp4a2', 'Set', 'Etf1', 'Sar1a', 'Riok1', 'Cap1', 'Pttg1', 'Rpl11', 'Rnf187', 'Lamtor2', 'Bri3bp', 'Ccdc86', 'Xrn2', 'Cox5b', 'Elp5', 'Rbbp4', 'Ak6', 'Pimreg', 'Max', 'Aimp2', 'Brk1', 'Usp22', 'Rbm27', 'Rab1a', 'Arf6', 'Bckdk', 'Rpl13a', 'Eprs', 'Kcmf1', 'Sf3b3', 'Maz', 'Ncaph2', 'Thumpd3', 'Isyna1', 'Kat2a', 'Mta1', 'H2afj', 'Cnot9', 'Cdk5rap3', 'Ppa1', 'Snrpb2', 'Ctnnb1', 'Nit2', 'Bod1', 'Auts2', 'Pafah1b1', 'Msh6', 'Arhgef39', 'Pten', 'Bysl', 'Polr1d', 'Exosc1', 'Wdr3', 'Rps13', 'Ccdc61', 'Tcf25', 'Acly', 'Higd1a', 'Btbd9', 'Zfp281', 'A430005L14Rik', 'Bclaf1', 'Bud23', 'Ndufb9', 'Setd3', 'Idh1', 'Hsp90ab1', 'Csnk1g2', 'Ubxn4', 'Ube2z', 'Ythdc1', 'Chic2', 'Ntmt1', 'Mycbp2', 'Ppcs', 'Zpr1', 'Mrpl52', 'Eif4h', 'Apex1', 'Cox7a2', 'Eri1', 'Supt6', 'Nol7', 'Ctbp1', 'Ltv1', 'Hnrnpc', 'Sqle', 'Ndufb2', 'Fam83d', 'Ndufs4', 'Maf1', 'Dnaja1', 'Hspa8', 'Larp7', 'Srp14', 'Rad21', 'Mrpl11', 'Ndufc2', 'Adk', 'Anapc16', 'Myl12a', 'Uqcr11', 'Slirp', 'Eny2', 'Tmem183a', 'Rpl18a', 'Sf3a3', 'Nadk', 'Glud1', 'Mrpl16', 'Fam49b', 'Fam114a2', 'G3bp1', 'Usp15', 'Cwc27', 'Taf10', 'Kdm1a', 'Ndufa2', 'Pfdn4', 'Svbp', 'Slc9a3r1', 'Yif1b', 'Mphosph10', 'Ociad1', 'Ppp1r7', 'Kpna2', 'Nol11', 'Hdgf', 'Vapb', 'Cdc37', 'Rpl24', 'Mtpn', 'Traf4', 'Rtraf', 'Pigf', 'Ube2r2', 'Mrps34', 'Gtf2f2', 'Capzb', 'Rpl36a', 'Sltm', 'Pclaf', 'Ly6e', 'Rfc4', 'Cdc123', 'Mafg', 'Ctps', 'Brd4', 'Ddx1', 'Col18a1', 'Rbm7', 'Nipsnap1', 'Emb', 'Acvr2b', 'Ubl5', 'Tpd52l2', '0610037L13Rik', 'Maged1', 'Cct4', 'Incenp', 'Hspd1', 'Rbmxl1', 'Dnm1l', 'Dhps', 'Rcor2', 'Naa15', 'Mnd1', 'Hnrnpd', 'Mtx1', 'Eef1g', 'Hnrnpul1', 'Rpl8', 'Ncor1', 'Polr2m', 'Gtf3a', 'Slc25a11', 'Pir', 'Krtcap2', 'Cnn3', 'Mrps10', 'Taf6', 'Preb', 'Dynlt1f', 'Pabpc1', 'Lsg1', '1110004E09Rik', '2410004B18Rik', 'Ywhah', 'Pdha1', 'Orc2', 'Sdad1', 'Trim59', 'Sgf29', 'Rpl21', 'Rsu1', 'Golgb1', 'Rps15a', 'Nme1', 'Siah1b', 'Fnbp1l', 'Banf1', 'Zfand6', 'Abce1', 'Kif4', 'Mtfr1l', 'Itgb3bp', 'Baz1b', 'Suds3', 'Rpn2', 'Serbp1', 'Fam96b', 'Cetn2', 'Ndufa8', 'Hirip3', 'Eef1d', 'Naa16', 'Rnf10', 'Epop', 'Cnot3', 'Tuba1c', 'Trmt6', 'Rala', 'Tomm5', 'Tgif1', 'Mfsd14a', 'Rpf1', 'Ndufb5', 'Ppp4c', 'Cmpk1', 'Rbm10', 'Ddx54', 'Mtch2', 'Psmd12', 'Prmt1', 'Oard1', 'Ube2d3', 'Oxa1l', 'Tmed9', 'Rars', 'Ndufc1', 'Trmt1', 'Polr2a', 'Dmac1', 'Wbp2', 'Nudc', 'Mybbp1a', 'Ppp2ca', 'Ruvbl1', 'Pnisr', 'Sept7', 'Klhdc3', 'Sin3a', 'Bzw1', 'Uba1', 'Samm50', 'Mat2a', 'Rtf2', 'H2afz', 'Rpl6', 'Rps3a1', 'Acadm', 'Tpd52', 'Mettl2', 'Psmc4', 'Arid2', 'B9d1', 'Wdr77', 'Ndufs6', 'Eef1akmt1', 'Cox7b', 'Rps19bp1', 'Ubxn6', 'Rpl41', 'Snf8', 'Brd1', 'Prpf4', 'Ide', 'Coro1c', 'Taldo1', 'Rpp25l', 'Ndufv1', 'Malat1', 'Mcl1', 'Cnot6', 'Hnrnpa2b1', 'Thap11', 'Ndufs7', 'Bud31', 'Chtop', 'Phc1', 'Wdr43', 'Ppp2r1a', 'Mrps17', 'Wdr75', 'Cct8', 'Aasdhppt', 'Nop9', 'Brd8', 'Maea', 'Ppia', 'Rce1', 'Npm3', 'Arl2', 'Mrps15', 'Mrpl22', 'Ost4', 'Timm44', 'Rbm17', 'Akirin2', 'Rps28', 'Ssb', 'Usp48', 'Mkrn1', 'Trim24', 'Mrpl37', 'Purb', 'Rwdd1', 'Elof1', 'Jagn1', 'Aqr', 'Park7', 'Impdh2', 'Atp5h', 'Ctbp2', 'Dnajc7', 'Rpl32', '1810058I24Rik', 'Thoc5', 'Poldip3', 'Slc38a2', 'Thop1', 'Sephs1', 'Nop2', 'Rpl13', 'Mmadhc', 'Atp6v1c1', 'Gars', 'Gfm1', 'Alyref', 'Epn1', '2810004N23Rik', 'Prdx2', 'Vapa', 'mt-Nd5', 'Ostc', 'Naa50', 'Larp1', 'Capns1', 'Smc2', 'Psmd8', 'Gspt1', 'Eif4a3', 'Mrto4', 'Snrpa', 'Vcp', 'Nsa2', 'Rbm39', 'Srsf9', 'Prpf31', 'Cherp', 'Gnai2', 'Mrps18a', 'Nup43', 'Med19', 'Gm8186', 'Utp4', 'Cox6c', 'Adrm1', 'Nfu1', '1700021F05Rik', 'Rangrf', 'Mga', 'Rabl6', 'Senp3', 'Ube3a', 'Mier1', 'Trim27', 'Canx', 'Rpl35a', 'Itpa', 'Rplp0', 'Dhx15', 'Ncbp1', 'Cs', 'Riok2', 'Ndufa9', 'Sec62', 'Mrps9', 'Copz1', 'Ppp1r11', 'Kif18a', 'Pcgf2', 'Blmh', 'Psme1', 'Mrpl24', 'Mrpl36', 'Marcks', 'Gsta4', 'Naa35', 'Dars', 'Srsf11', 'Mrps35', 'Lsm12', 'Gpx1', 'Phb2', 'Cenpw', 'Idh3a', 'Kpna3', 'Rnmt', 'Hikeshi', 'Mcm3', 'Uqcrc2', 'Rps2', 'Atxn10', 'D10Wsu102e', 'Hars', 'Dap3', 'Trappc5', 'Ddb1', 'Ttc1', 'Med25', 'Dnajc15', 'Mdh2', 'Utp18', 'Rpl7a', 'Timm22', 'Immp1l', 'Tecr', 'Pinx1', 'Mtmr14', 'Vps28', 'Gpatch4', 'Tbcb', 'Atox1', 'Pcbp4', 'Sbds', 'Farsa', 'Gemin5', 'Eno1', 'Psma7', 'Cdc26', 'C1qbp', 'Kdm5b', 'Wipi2', 'Bptf', 'Mrpl21', 'Dis3', 'Hnrnpa1', 'Akap8', 'Fbxo5', 'Dcps', 'Seh1l', 'Tmem160', 'Uqcr10', 'Mrpl12', 'Senp6', 'Ndufb8', 'Fh1', 'Eif4g2', 'Nap1l1', 'Eef2', 'Dnmt3b', 'Hsp90aa1', 'Fbxo22', 'Atp1b3', 'Lamtor4', 'Cul3', 'Pabpc4', 'Sin3b', 'Guk1', 'Snu13', 'Tceal9', 'Paip1', 'Hmgn2', 'Ssbp3', 'Chchd4', 'Anapc10', 'Caprin1', 'Urod', 'Chd7', 'Pa2g4', 'Cpsf6', 'Mrps12', 'Eif3k', 'Aifm1', 'Wapl', 'Gatad2a', 'Sde2', 'Isca2', 'Rnf115', 'mt-Nd1', 'Nup85', 'Lmnb1', 'Supt5', 'Ccar1', 'Ndufs1', 'Fat1', 'Bms1', 'Ube2e1', 'Psmb7', 'Daxx', 'Yipf5', 'Mum1', 'Ywhaq', 'Sod2', 'Thg1l', 'Echs1', 'Mark3', 'Ufm1', 'Ptdss2', 'Ak2', 'Ybx3', 'Mpdu1', 'Dicer1', 'Cdv3', 'Epcam', 'Tmem230', 'Gclm', 'Csnk2b', 'Tmem11', 'mt-Nd4', 'Zcchc10', 'Ndufs3', 'Rpp30', 'Fabp5', 'Rcc1', 'Dcakd', 'Ptma', 'Ngdn', 'Prrc2b', 'Skiv2l2', 'Parp1', 'Bola3', 'Ddx39b', 'Zwint', 'Phf3', 'Clint1', 'Nedd4', 'Vdac3', 'Mif', 'Dtd1', 'Eif2b5', 'Ppp2r2d', 'Eif4e', 'Hnrnpr', 'Ppih', 'Gnb1', 'Spr', 'Matr3', 'Hectd1', 'Hmgcs1', 'Lars', 'Mdn1', 'Ufc1', 'Atp6v0b', 'Bola2', 'Las1l', 'Lsm2', 'Szrd1', 'Gng5', 'Ndufa13', 'Baz2a', 'Hint1', 'H2afy', 'Znrf2', 'Hnrnpul2', 'Tsr1', 'Tmem258', 'Dus1l', 'Ppp1r2', 'Atp5c1', 'Slc25a5', 'Rac1', 'Denr', 'Thrap3', 'Jarid2', 'Esco2', 'Cad', 'Rtcb', 'Ergic2', 'Timm50', 'Rab11a', 'Atp5f1', 'Polr2e', 'Cdk12', 'Naca', 'Hat1', 'Sgo2a', 'Poldip2', 'Cuedc2', 'Ube2a', 'Nucks1', 'Rragd', 'Gpn1', 'Csrp2', 'Rps3', 'Utp14a', 'Spop', 'Dctn3', 'Nono', 'Immt', 'Ggnbp2', 'Dbf4', 'Metap2', 'Rpl7l1', 'Atp5g3', 'Akap9', 'Ankrd11', 'Rif1', 'Med10', 'Adh5', 'Psma5', 'Use1', 'Nop56', 'Rnf34', 'Ubl3', 'Pqbp1', 'Rrp1b', 'Timm13', 'Prpf38b', 'Pgp', 'Chmp5', 'Pelp1', 'Psmc3', 'Cops8', 'Rps15', 'Qrich1', 'Cdkn2aipnl', 'Dazap1', 'Mrps18c', 'Hmgxb4', 'Ubb', 'Mrpl34', 'Jmjd1c', 'Arid1a', 'Tax1bp1', 'Chchd2', 'Pdcd10', 'Noc2l', 'Ap2m1', 'Scaf11', 'Rpn1', 'Cd2bp2', 'Cd164', 'Actn4', 'Hnrnpm', 'Ywhae', 'Noc4l', 'Fam32a', 'Cnih4', 'Pfn1', 'Rpl19', 'Bub3', 'Rap1b', 'Tomm20', 'Med30', 'Tmbim4', 'Mapk3', 'Eef1a1', 'Fam162a', 'Akap12', 'Uqcc3', 'Mrps30', 'Snrnp25', 'Mrpl10', 'Ddx3x', 'Otub1', 'Mlec', 'Nup50', 'Rnf4', 'Glrx5', 'Babam1', 'Rps10', 'Znrd1', 'Eif5b', 'Rpp14', 'Rraga', 'Mycbp', 'Drap1', 'Usmg5', 'Thoc2', 'Cdca5', 'Cisd1', 'Mrpl50', 'Ddx49', 'Copb2', 'Smn1', 'Eid2', 'Fbxw7', 'Cyth2', 'Nop53', 'Cltc', 'Map1s', 'Zranb2', 'Sf3b6', 'Msantd3', 'Dek', 'Suclg2', 'Asf1a', 'Slc35b1', 'Sms', 'Cyb5a', 'Tmem97', 'Psmd9', 'Ddx52', 'Gtf2h3', 'Pum2', 'Srsf1', 'Cyp51', 'Psmc2', 'Rex1bd', 'Upf3b', 'Psmb2', 'Snrnp27', 'Mrpl39', 'Fbl', 'Cdk7', 'Arpp19', 'Ruvbl2', 'Ehmt1', 'Gtf3c6', 'Rpl18', 'Espl1', 'Romo1', 'Terf1', 'Bst2', 'Gnpat', 'Timm17b', 'Rps21', '2410015M20Rik', 'Ash2l', 'Parp2', 'Nrd1', 'Nfyc', 'Ewsr1', 'Med28', 'Uqcc2', 'Cox6b1', 'Pum3', 'Jade1', 'Dut', 'Bax', 'Pdcd6', 'Dctpp1', 'Rtca', 'Prdx6', 'Rrp15', 'Ube2k', 'Zfp638', 'Rps14', 'Fdps', 'Ppil3', 'Cd320', 'Uchl3', 'Sall4', 'Smim12', 'Psmc5', 'Ganab', 'Mrpl55', 'Rps25', 'Ube2d2a', 'Smarca4', 'Imp3', 'Igf2bp3', 'Npm1', 'Myl6', 'Mnat1', 'Ubap2l', '0610009B22Rik', 'Tfg', 'Mgea5', 'Ywhab', 'Parl', 'Igfbp2', 'Pbrm1', 'Eif2s1', 'Ddx47', 'Mrps5', 'Mrpl30', 'Zfp622', 'Rer1', 'Phf23', 'Ythdf1', 'Pcgf6', 'Rfc5', 'Med4', 'Clns1a', 'Erh', 'Luc7l', 'Stoml2', 'Atp6v0e', 'Srsf3', 'Rab9', 'Pak1', 'Ilf3', 'Eloc', 'Nudt4', 'Rpl17', 'Mat2b', 'Sem1', 'Mis18bp1', 'Etfa', 'Rps27a', 'Snrpg', 'Mrpl4', 'Qdpr', 'Tfdp1', 'Pdcd5', 'Eif5', 'Gemin7', 'Dync1h1', 'Gpi1', 'Eif4b', 'Polr2h', 'Wtip', 'Srpk1', 'Atp6v1f', 'Rpl35', 'Hspbap1', 'Bloc1s2', 'Psmd3', 'Vps29', 'Gar1', 'Psmd7', 'Smc1a', 'Aamp', 'Vrk1', 'Xpo6', 'Snx10', 'Ppm1a', 'Actb', 'Tcerg1', 'Arpc5', 'Oaz1', 'Yy1', 'Bex4', 'Psmc6', 'Mrpl43', 'Api5', 'Calm2', 'Psma4', 'Mtdh', 'Prdx4', 'Ube2q1', 'Nampt', 'Myl12b', 'Basp1', 'Rida', 'Rad23b', 'Ing5', 'Ndufv2', 'Tiprl', 'Sarnp', 'Lsm14a', 'Rpl3', 'Selenoh', 'Drosha', 'Emc6', 'Cand1', 'Papola', 'Mien1', 'Prc1', 'Aldh7a1', 'Ssrp1', 'Utp15', 'Clta', 'Btbd2', 'Knop1', 'Rps5', 'Alkbh7', 'Arpc1a', 'Asna1', 'Rpsa', 'Nrbp1', 'Numa1', 'Uqcrh', 'Calr', 'Mdh1', 'Ints10', 'Srp72', 'Dcun1d5', 'Yars2', 'Sf3a1', 'Ptprf', 'Txn1', 'Leo1', 'Prpsap1', 'Mrps27', 'BC031181', 'Srek1', 'Taf15', 'Trir', 'Hcfc1', 'Spdl1', 'Aldh2', 'Rtn3', 'Ubqln1', 'Sec23b', 'Nemf', 'Rps6', 'Minos1', 'Mrpl38', 'Cenpx', 'Bzw2', 'Mphosph8', 'Larp4', 'Srp68', 'Hadh', 'Nhp2', 'Ccnl2', 'Mrps23', 'Rab18', 'Stip1', 'Fubp1', 'Cenph', 'Hspa5', 'Cbx1', 'Anapc11', 'Atpif1', 'Vasp', 'H3f3b', 'Cndp2', 'Sdhc', 'Capza2', 'Ndufa7', 'Iscu', 'Psma6', 'Thoc7', 'Aurkaip1', 'Bcas2', 'Yrdc', 'Mrpl28', 'Sec13', 'Cops2', 'Msmo1', 'Mis18a', 'Tomm70a', 'Rpp40', 'Grpel1', 'Tmem147', 'Lsm6', 'Hdac1', '2810474O19Rik', 'Rfc1', 'Sfpq', 'Ahctf1', 'Snx2', 'Nudt21', 'Dad1', 'Ppp1r14b', 'Coa7', 'Cdk9', 'Lyar', 'Safb', 'Nsrp1', 'Tpm3', 'Coprs', 'Nsmce4a', 'Psip1', 'Eif1ax', 'Tmem55b', 'Atp1a1', 'Bccip', 'Ddx17', 'Top1', 'Atp5b', 'Rp9', 'Vps36', 'E2f5', 'Polr2i', 'Bckdhb', 'Ccnk', 'Cfap20', 'Prpf40a', 'Nsun2', 'Tle4', 'Cd2ap', 'Atf6b', 'Qk', 'Slc25a4', 'Polr1c', 'Ssr2', 'Sh3bgrl3', 'Ndufv3', 'Hsbp1', 'Gsr', 'Rpl22', 'Sf3b1', 'Sptbn1', 'Tcof1', 'Pkm', 'Magoh', 'Cox5a', 'Hdac2', 'Ntan1', 'Cnot1', 'Igbp1', 'Naxe', 'Ei24', 'Cdk11b', 'Strn4', 'Tsen34', 'Pdap1', 'Fgd1', 'Hnrnpab', 'Prpf8', '4930453N24Rik', 'Akr7a5', 'Ssu72', 'Plin3', 'Mrpl40', 'Rpl7', 'Kars', 'Prkcsh', 'Ik', 'Cyfip1', 'Uchl5', 'Wdr61', 'Trip12', 'Dapk3', 'Hspe1', 'Atg101', 'Snrnp40', 'Rplp1', 'Smc3', 'Imp4', 'Dhx36', 'Ppat', 'Cdca4', 'Trp53', 'Hmgn1', 'Lrrc42', 'Shcbp1', 'Pdia3', 'Tuba1b', 'Nras', 'Atp6v1e1', 'Smarcd1', 'Nmd3', 'Ep400', 'Atxn2l', 'Tjp2', 'Prdx5', 'Mrpl44', 'Thoc6', 'Pom121', 'Eif3a', 'Rnaseh1', 'Glo1', 'Cox14', 'Gmps', 'Map1b', 'Nol12', 'Sapcd2', 'Trap1', 'Timm8b', 'Mrfap1', 'Cope', 'Hnrnpk', 'Chchd1', 'Uchl1', 'Exosc3', 'Kat7', 'Ier3ip1', 'Xpo1', 'Srp19', 'Mdk', 'Dcaf13', 'Srsf7', 'Fundc2', 'Rrp1', 'Atp6v1a', 'Pdhb', 'Cct3', 'Crlf3', 'D030056L22Rik', 'Ddx6', 'Pomp', 'Zc3h18', 'Rbm6', 'Ppp5c', 'Sugt1', 'Ptrh2', 'Hspa14', 'Psmd11', 'Pfdn5', 'Gpd2', 'Ndufa1', 'Mettl16', 'Bop1', 'Hspa4', 'Rpl26', 'Psmc1', 'Pim2', 'Map2k2', 'Nudcd3', 'Cpsf3', 'Psmg2', 'Ahsa1', 'Csnk1d', 'Aplp2', 'Ctnna1', 'Gmppb', 'Srrm2', 'Usp39', 'Cmss1', 'Ktn1', 'Actl6a', 'Slc38a1', 'Sdhaf4', 'Snx5', 'Mrpl15', 'Rbbp7', 'Dnttip2', 'Rock1', 'Timm9', 'Exosc4', 'Eif3m', 'Pop5', 'Hmgb3', 'Calm3', 'Eif3l', 'Dhfr', 'Tial1', 'Pmf1', 'Kcnq1ot1', 'Psmd1', 'Iws1', 'Ssr4', 'Ndufb10', 'Ola1', 'Cxxc5', 'Cetn3', 'Grwd1', 'Fancl', 'Ywhaz', 'Zfr', 'Hnrnpu', 'Cenpm', 'P4hb', 'Nap1l4', 'Nop58', 'Vars', 'Mrpl14', 'Ppa2', 'Smdt1', 'Srbd1', 'L1td1', 'Trmt112', 'Hmgcr', 'Mrpl2', 'Trim28', 'Cops3', 'Rnaseh2c', 'Map1lc3b', 'Anapc5', 'Cox8a', 'Ubac1', 'Ncl', 'Ezr', 'Rsf1', 'Rpl10a', 'Vps35', 'Snrpd2', 'Gid8', 'Mettl1', 'Tomm34', 'Mbip', 'Tomm22', 'Pole3', 'Ppie', 'Ccdc12', 'Zfp598', 'Tbrg1', 'Iqgap1', 'Rps29', 'Fam192a', 'Mydgf', 'Nipbl', 'Sart3', 'E2f4', 'Nudt19', 'Usp14', 'Phgdh', 'Ago2', 'Fasn', 'Rdx', 'Cct2', 'Slc3a2', 'H2afv', 'Ndufab1', 'Lrwd1', 'Marcksl1', 'Gng2', 'Abt1', 'Shmt1', 'BC003965', 'Gtf2i', 'Mrps28', 'Syce2', 'Eif2b2', 'Gm10076', 'Eif2s2', 'Polr2b', 'Ppp1r12a', 'Fth1', 'Fkbp1a', 'Tpt1', 'Tars', 'Lsm7', 'Thumpd1', 'Slc39a10', 'Selenow', 'Tmsb10', 'Ppp4r3a', 'Psmb4', 'Atad3a', 'Glrx2', '1110004F10Rik', 'Ylpm1', 'March7', 'Chd1', 'Atp5j2', 'Ppid', 'Nup88', 'Ddost', 'Nol8', 'Ybx1', 'Chordc1', 'Erg28', 'Midn', 'Cox7c', 'Zcrb1', 'Cd81', 'Ddx56', 'Tma7', 'Nup107', 'Utp20', 'Strap', 'Hnrnph3', 'Aldoa', 'Eif3f', 'Mrpl54', 'Taf12', 'Mbd3', 'Riok3', 'Srpk2', 'Alg13', 'C330027C09Rik', 'Cript', 'Znhit6', 'Dnajc21', 'Nup188', 'Ipo7', 'Arf5', 'Snrpn', 'Nifk', 'Pcm1', 'Hk2', 'Dhx9', 'Slc25a39', 'Rps8', 'Ndufb6', 'Rps7', 'Huwe1', 'Nsfl1c', 'Pin1', 'Rnaseh2b', 'Rpl28', 'Odf2', 'Emc2', 'Atp2b1', 'Arpc5l', 'Cdk4', 'Malsu1', 'Dynll1', 'Mrpl51', 'Smndc1', 'Memo1', 'Ddx24', 'Dnaja2', 'Topbp1', 'Eif1b', 'Pcmt1', 'Selenof', 'Trappc13', 'Cep57', 'Smarcc1', 'Twistnb', 'Pgls', 'Faf1', 'Mettl9', 'Slc7a3', 'Cops5', 'Arf1', 'Copb1', 'Kpnb1', 'Grhpr', 'Timm17a', 'Tmbim6', 'Gm10093', 'Eif1', 'Bex3', 'L3mbtl2', 'Mrps7', 'Rheb', 'Psmb1', 'Akr1a1', 'Glrx3', 'Smu1', 'Gdi2', 'Med31', 'Aimp1', 'Rps27', 'H3f3a', 'Ywhag', '1700123O20Rik', 'Hnrnpa3', 'Get4', 'Timm10', 'Edf1', 'Atg5', 'Pspc1', 'Afdn', 'Med6', '3110082I17Rik', 'Rps9', 'Gnas', 'Cisd2', 'Tpst1', 'Selenok', 'Bag1', 'Mrpl47', 'Golph3', 'Fscn1', 'Rab7', 'Rps27l', 'Mrpl57', 'D8Ertd738e', 'Pnn', 'Rpl23a', 'Naa20', 'Sptssa', 'Rbm8a', 'Abracl', 'Polr1a', 'Nudcd2', 'mt-Nd2', 'Rbm25', 'Dbi', 'Far1', 'Osgep', 'Nt5dc2', 'Wdr4', 'Ndufb11', 'Pias2', 'Cox4i1', 'Tmem14c', 'Fcf1', 'Tgs1', 'Otx2', 'Zrsr2', 'Prmt5', 'St13', 'Jmjd6', 'Rps18', 'Cyb5b', 'Sap30', 'Glyr1', 'Smad4', 'Samd4b', 'Rpl34', 'Atl2', 'Arhgap19', 'Aunip', 'Myo10', 'Snrpf', 'Exosc8', 'Rhoa', 'Umps', 'Ubald2', 'Aco2', 'Phf5a', 'Ss18', 'Selenos', 'Stt3a', 'Ndufs8', 'Wdr12', 'Pdzd11', 'Melk', 'Znhit3', 'Atp5j', 'Srm', 'Nubp2', 'Dbnl', 'Gm17018', 'Chd4', 'Ubxn1', 'Abhd17a', 'Nelfcd', 'Ngrn', 'Slc25a3', 'Adipor1', 'Ddx39', 'Rpl37', 'Hpf1', 'Ubtf', 'Kat8', 'Prelid1', 'Snx3', 'Nedd8', 'Ppm1g', 'Emg1', 'Lage3', 'Ppp1ca', 'Cycs', 'Ddx42', 'Adss', 'Ddx21', 'Ttc5', 'Rpl22l1', 'Lrrc47', 'Mrpl58', 'Gtf2b', 'Usf1', 'Eif3h', 'Mlf2', 'Ptpn2', 'Pus1', 'Wbp4', 'Tex10', 'Ccdc59', 'Surf2', 'Gm10036', 'Atf4', 'Maoa', 'Otud5', 'Mrpl18', 'Ddx41', 'Rab2a', 'Psmg1', 'Vta1', 'Gnl2', 'Knl1', 'Rnf5', 'Skp1a', 'Rtf1', 'Pdcd7', 'Mplkip', 'Nob1', 'U2surp', 'Phf20', 'Sdhb', 'Fkbp4', 'Tmem165', 'Tra2a', 'Wnk1', 'Gapdh', 'Nabp2', 'Thoc3', 'Dnajc5', 'Nip7', 'Nisch', 'Ythdf2', 'Kif22', 'Spc24', 'Rbfa', 'Gtpbp4', 'Zdbf2', 'Psma2', 'Mdp1', 'Chaf1a', 'Mapk1', 'Pfkl', 'Ralbp1', 'Rwdd4a', 'Grk6', 'Rpl12', 'Tkt', '2010107E04Rik', 'Fkbp2', 'Thyn1', 'Nxf1', 'Srsf6', 'Ddx10', 'Eif3i', 'Hnrnpa0', 'Bcat2', 'Rabggtb', 'Srsf4', 'Idh3g', 'Elp3', 'Ccnh', 'Nosip', 'Maip1', 'Siva1', 'Nde1', 'Csde1', 'Aspm', 'Dkc1', 'Abcf1', 'Fam204a', 'Cggbp1', 'Sf3b2', 'Rab6a', 'Dusp12', 'Nae1', 'Trim71', 'Rrbp1', 'Ndufa5', 'Snrpd3', 'Saal1', 'Rplp2', 'Ciapin1', 'Atic', 'Yeats4', 'Pcnt', 'Cct7', 'Atp6v1d', 'Dynlrb1', 'Racgap1', 'Rps11', 'Napa', 'Pprc1', 'Txnrd1', 'Syf2', 'Csnk1a1', 'Eef1b2', 'Pmm1', 'Tcf7l1', 'Tnpo3', 'Smchd1', 'Gna11', 'Rcc2', 'Slc24a5', 'Zfp771', 'H2afx', 'Ptges3', 'Mpp6', 'Psme4', 'Rab14', 'Ormdl2', 'Ubr5', 'Actr3', 'Mif4gd', 'Pdia6', 'Atrx', 'Eif6', 'Gga2', 'Nufip1', 'Tor1a', 'Ndufb7', 'Mrpl45', 'Coa3', 'Dgcr6', 'Vbp1', 'Mphosph6', 'Pgd', 'Crls1', 'Atf1', 'Srrm1', 'Rps19', 'Fzr1', 'Psmb3', 'Tbca', 'Nars', 'Plp2', 'Sar1b', 'Sec61b', 'Gcsh', 'Map2k1', 'Ranbp1', 'Yme1l1', 'Prrc2c', 'Ftsj3', 'Nfyb', 'Ubap2', 'Ppan', 'Zfp219', 'Nubp1', 'Rab8a', 'Actr1b', 'Mrps16', 'Ppdpf', 'Hprt', 'Zmat2', 'Ezh2', 'Cul2', 'Eif4e2', 'Cops9', 'Rbm28', 'Tnks2', 'Trim33', 'Rsl24d1', 'Ints11', 'Pitrm1', 'Mrpl17', 'Esf1', 'Cacybp', 'Pum1', 'Taf11', 'Gpbp1', 'Swi5', 'Snrpb', 'Ccdc115', 'Wdr89', 'Rab3ip', 'Tfap4', 'Zfp292', 'Mcm7', 'Rsl1d1', 'Rpl37a', 'Bex1', 'Ppig', 'Supt4a', 'Sgo1', 'Atp5d', 'Nup37', 'Prrc2a', 'Smarca5', 'Ube2m', 'Lamtor5', 'Klf13', 'Atp5g1', 'Mrps24', 'Sf3b5', 'Prmt7', 'Ccdc34', 'Vti1b', 'Srp9', 'Utp11', 'Psma1', 'Ubl4a', 'Ndufb3', 'Traf7', 'Mrpl27', 'Mtfr1', 'Supt20', 'Lamp1', 'Ska1', 'Sub1', 'Sephs2', 'Ghitm', 'Hspa9', 'Trappc4', 'Dstn', 'Rps17', 'Birc6', 'Kif20a', 'Pla2g1b', 'Rrp9', 'Cwc15', 'Psmd2', 'Vdac1', 'Rps20', 'Rngtt', 'Dnajc11', 'Igf2bp1', 'Morc3', 'Chmp2a', 'Spcs1', 'Ube2j2', 'Calm1', 'Srsf2', 'Mzt2', 'Dpp3', 'Mrps21', 'Nup35', 'Xrcc5', 'Prelid3b', 'Zfand5', 'Bsg', 'Dnajc2', 'Ankrd17', 'Eif3e', 'Dctn2', 'Tpi1', 'Eif2a', 'Ttc27', 'Usp5', 'Zfp462', 'Zfp706', 'Cpsf2', 'Uba2', 'Rps24', 'Chmp4b', 'Aggf1', 'Dda1', 'Fam136a', 'Tmem126a', 'Usp34', '1110038F14Rik', 'Ndufs2', 'Gemin6', 'Kdelr2', 'Ergic3', 'Jpt1', 'Crebbp', 'Ptcd2', 'Pkp4', 'Hdlbp', 'Rab24', 'Foxn3', 'Tspan31', 'Commd6', 'Psme3', 'Lap3', 'Prmt3', 'Rpl23', 'Tcf3', 'Scamp3', 'Tufm', 'Galk1', 'Rbpms2', 'Smc6', 'Mrpl1', 'Lsm8', 'Bcap31', 'Med7', 'Eif5a', 'Prkar1a', 'Sdha', 'Rpl9', 'Ccna2', 'Polr3k', 'Ptpa', 'Ssna1', 'Utf1', 'Lonp1', 'Wbp11', 'Cdk2ap1', '9130401M01Rik', '1810037I17Rik', 'Uri1', 'Eif4a2', 'Uck2', 'Ddx27', 'Bcl7c', 'Cbr1', 'Ccdc124', 'Rpl27', 'Nxt1', 'Nsd1', 'Lias', 'Afg3l1', 'Fis1', 'Kif5b', 'Laptm4a', 'Cinp', 'Ccnf', 'Asxl1', 'Mrpl20', 'Ppp2r5d', 'Cct5', 'Tmem256', 'Emc10', 'Stt3b', 'Aprt', 'Sdhd', 'Ppil1', 'Flna', 'Ppp4r2', 'Pak2', 'Wasl', 'Gtf2e2', 'Rexo2', 'Snrnp200', 'Cnpy2', 'Spcs2', 'Eml4', 'Lsm5', 'Tigar', 'Tomm40', 'Farsb', 'Polr2g', 'Pdcl3', 'Gtf2a2', 'Armc1', 'Gins4', 'Nsmce2', 'Morf4l2', 'March5', 'Mrpl13', 'Ndufa11', 'Rack1', 'Txnl4a', 'Eif1a', 'Hsd17b12', 'Rrp8', 'Rae1', 'Rps23', 'Gadd45gip1', 'Mad2l1', 'Ube2f', 'Rnf7', 'Rest', 'Prkrip1', 'Ptbp1', 'Ddx18', 'Katnbl1', 'Mapre1', 'Slc25a1', 'Ndufa10', 'Ing1', 'Anapc13', 'Wdr18', 'Chchd6', 'Csnk2a1', 'Fgfr1op2', 'Elavl1', 'Rpl15', 'Polr2f']}
Primitive streak novel cc genes: 159 new S genes; 1952 new G2M genes
{'S': ['Hnrnpdl', 'Lsm2', 'Prdx1', 'Dhfr', 'Zfp706', 'Snrpd1', 'Chd4', 'Ppa1', 'Cct4', 'Psmd6', 'Ssr2', 'Uba2', 'Hspd1', 'Ccne1', 'Lin28a', 'Lig1', 'Ssrp1', 'Sf3b1', 'Hnrnpa2b1', 'Ptges3', 'Dynll1', 'Eif4a1', 'Ppm1g', 'Dnaja2', 'Hnrnpd', 'Magoh', 'Fam136a', 'Pdia6', 'Hnrnpu', 'Psma7', 'Eif6', 'Ddx21', 'C1qbp', 'Psmd14', 'Mettl9', 'L1td1', 'C1d', 'Fbxo5', 'Pdap1', 'Eif3c', 'Dut', 'Ssb', 'Hnrnpab', 'Mrpl12', 'Ncl', 'Prdx6', 'Ezr', 'Rbpms2', 'Eif4g2', 'Nop10', 'Ube2k', 'Nap1l1', 'Snrpe', 'Lsm8', 'Hsp90aa1', 'Ranbp1', 'Rif1', 'Uchl5', 'Hspe1', 'Snrnp40', 'Uchl3', 'Smc3', 'Eif4h', 'Tra2b', 'Aimp1', 'Arhgdia', 'Ezh2', 'Rtn3', 'G3bp2', 'Caprin1', 'Tpr', 'Npm1', 'Hnrnpc', 'Hmgn1', 'Luc7l3', 'Cacybp', 'Taf1', 'Hnrnpf', 'Supt16', 'Eef1d', 'Stip1', 'Cbx1', 'Marcksl1', 'Lmnb1', 'Hist1h1b', 'Cct5', 'Mrpl11', 'Scaf11', 'Rpa1', 'Mcm7', 'H3f3b', 'Rsl1d1', 'Ppil1', 'Rbm39', 'Gmps', 'Psma2', 'U2af1', 'Rps26', 'Chaf1a', 'Tomm5', 'Ube2e1', 'Smarca5', 'Stoml2', 'Ywhaq', 'Adrm1', 'Hnrnpk', 'Mrfap1', 'Nolc1', 'Ran', 'Cnbp', 'Mrpl28', 'Eloc', 'Fkbp1a', 'Srsf7', 'Orc6', 'Grpel1', 'Ak2', 'Dhx15', 'Cct3', 'Sub1', 'Cdv3', 'Hnrnpa0', 'Hspa9', 'Ppid', 'Rps17', 'Lyar', 'Ybx1', 'Anp32b', 'Cox7c', 'Pfdn2', 'Set', 'Sept7', 'Hspa4', 'Ptma', 'Ccnd1', 'Srpk1', 'Rfc3', 'Bzw1', 'Nsmce4a', 'Strap', 'Psip1', 'Phb2', 'Psmd7', 'H2afz', 'Rtraf', 'Anp32a', 'Mcm3', 'Srsf2', 'Dek', 'Rbbp7', 'Psmc6', 'Rhoa', 'Matr3', 'Dpy30', 'Pclaf', 'Elavl1', 'Cct7', 'Dnajc2', 'Psmc2'], 'G2M': ['Upf3b', 'Psmb2', 'Snrnp27', 'Mrpl42', 'Prdx1', 'Frg1', 'Mcts1', 'Mrpl39', 'Sod1', 'Snrpd1', 'Rnf44', 'Ppif', 'Paics', 'Rhno1', 'Eif2b3', 'Adprhl2', 'Mak16', 'Cnih1', 'Fbl', 'Psmd6', 'Arpp19', 'Ruvbl2', 'Ehmt1', 'Lin28a', 'Pfdn1', 'Lig1', 'Gtf3c6', 'Rpl18', 'Hsd17b10', 'Ndufaf8', 'Romo1', 'Terf1', 'Rbck1', 'Bub1b', 'Tceal8', 'Kmt5a', 'Cul5', 'Timm17b', 'Rps21', 'Uqcrq', '2410015M20Rik', 'Ash2l', 'Hras', 'Parp2', 'Fam50a', 'Zc2hc1a', 'Nfyc', 'Ewsr1', 'Med28', 'Uqcc2', 'Cox6b1', 'Pum3', 'Ddx5', 'Dut', 'Bax', 'Pdcd6', 'Dctpp1', 'Tsg101', 'Rnf149', 'Ttc3', 'Rtca', 'Prdx6', 'Slc25a17', 'Rbm26', 'Oxct1', 'Scand1', 'Prpf38a', 'Rrp15', 'Ube2k', 'Zfp106', 'Rps14', 'Uqcrb', 'Nop14', 'Zc3hc1', 'Fdps', 'Ppil3', 'Cd320', 'Uchl3', 'Sall4', 'Smim12', 'Fkbp8', 'Txndc17', 'Psmc5', 'Ganab', 'Nudt2', 'Impact', 'Mrpl55', 'Lman2', 'Rps25', 'G3bp2', 'Ube2d2a', 'Atp5k', 'Smarca4', 'Imp3', 'Igf2bp3', 'Npm1', 'Myl6', 'Bex2', 'Hsp90b1', 'Tmem138', '0610009B22Rik', 'Tfg', 'Mgea5', 'Ywhab', 'Bola1', 'Lsm4', 'Parl', 'Cnep1r1', 'Brd2', 'Igfbp2', 'Pbrm1', 'Eif2s1', 'Taf7', 'Mrps5', 'Mrpl30', 'Tada2a', 'Zfp622', 'Celf1', 'Rer1', 'Phf23', 'Prpf4b', 'Ythdf1', 'Pcgf6', 'Rfc5', 'Med4', 'Hspb11', 'Btf3', 'Clns1a', 'Erh', 'Txnl1', 'Dnajc19', 'Phb', 'Stoml2', 'Rbm5', 'Atp6v0e', 'Tmem50a', 'Zcchc17', 'Srsf3', 'Ube2g1', 'Rab9', 'Cnbp', 'Ilf3', 'Gtf2h5', 'Eif3j2', 'Eloc', 'Nudt4', 'Pigx', 'Cdc5l', 'Cops4', 'Rpl17', 'Mars', 'Pfdn6', 'Suz12', 'Atp5a1', 'Paip2', 'Mat2b', 'Sem1', 'Wdr26', 'Mis18bp1', 'Jtb', 'Plk1', 'Naf1', 'Etfa', 'Rps27a', 'Rnf6', 'Snrpg', 'Haus1', 'Mre11a', 'Mrpl4', 'Topors', 'Cebpz', '1110008F13Rik', 'Qdpr', 'Tfdp1', 'Pdcd5', 'Rbbp6', 'Cers4', 'Lsr', 'Anp32b', 'Prdx3', 'Eif5', 'Gemin7', 'Eif4ebp1', 'Pfdn2', 'Gpi1', 'Ldhb', 'Gm47283', 'Rpl30', 'Eif4b', 'Polr2h', 'Srpk1', 'Atp6v1f', 'Rpl35', 'Pold2', 'Bloc1s2', 'Psmd3', 'Vps29', 'Gar1', 'Psmd7', 'Smc1a', 'Ddt', 'Aamp', 'Vrk1', 'Anp32a', 'Ppm1a', 'Pno1', 'Fip1l1', 'Actb', 'Pwp1', 'Tcerg1', 'Ncapd3', 'Arpc5', 'Rpf2', 'Cfdp1', 'Sdf4', 'Oaz1', 'Bex4', 'Psmc6', 'Mrpl43', 'Calm2', 'Pes1', 'Taf1d', 'Psma4', 'Mtdh', 'Prdx4', 'Ube2q1', 'T', 'Nampt', 'Ccdc58', 'Myl12b', 'Trnau1ap', 'Basp1', 'Dnajc9', 'Rida', 'Atp5e', 'Dnmt1', 'Etv4', 'Efr3a', 'Ing5', 'Arl6ip1', 'Ndufv2', 'Psma3', 'Hdgfl2', 'Ddx46', 'Rbm42', 'Tiprl', 'Mrps31', 'Sarnp', 'Lsm14a', 'Rpl3', 'Yipf3', 'Pafah1b2', 'Fam104a', 'Selenoh', 'Eed', 'Cars', 'Emc6', 'Papola', 'Prc1', 'Aldh7a1', 'Snw1', 'Coq7', 'Ssrp1', 'Nelfe', 'Ptms', 'Rpl10', 'Clta', 'Cyb5r3', 'Atp6v1g1', 'Btbd2', 'Dnajc8', 'Cfl2', 'Rps5', 'Alkbh7', 'Cyc1', 'Arpc1a', 'Rcn1', 'Ubc', 'Asna1', 'Scd1', 'Tm9sf3', 'Rpsa', 'Numa1', 'Sssca1', 'Uqcrh', 'Calr', 'Eif3b', 'Clpp', 'Utp3', 'Mdh1', 'Arhgap11a', 'Ap2s1', 'Eif4g1', 'Nop10', 'Mob4', 'Hibadh', 'Zfp511', 'Clic1', 'Snrpe', 'Mtx2', 'Srp72', 'Cops6', 'Ncaph', 'Dcun1d5', 'Acsl3', 'Puf60', 'Sf3a1', 'Mrpl32', 'Ptprf', 'Med8', 'Psmb6', 'Txn1', 'Cox6a1', 'Cul1', 'Leo1', 'Prpsap1', 'Smarcb1', 'BC031181', 'Srek1', 'Smap1', 'Reep5', 'Trir', 'Cmas', 'Ctr9', 'Hcfc1', 'Tra2b', 'Got1', 'Trub1', 'Arhgdia', 'Rsrc2', 'Rpl39', 'Fem1b', 'Spdl1', 'Aldh2', 'Coa6', 'Rtn3', 'mt-Co1', 'Sec23b', 'Nemf', 'Sap18', 'Rps6', 'Minos1', 'Mrpl38', 'Commd2', 'Cenpx', 'Luc7l3', 'Bzw2', 'Mphosph8', 'Nelfa', 'Larp4', 'Srp68', 'Hadh', 'Nhp2', 'Cenpp', 'Hnrnpf', 'Mthfd1', 'Cnot2', 'Rab18', 'Stip1', 'Fubp1', 'Hspa5', 'Cbx1', 'Anapc11', 'Klhdc2', 'Atpif1', 'Gsto1', 'Gclc', 'H3f3b', 'Vdac2', 'Ubr4', 'Mcrs1', 'Sdhc', 'Higd2a', 'Smyd2', 'Tfam', 'Rps26', 'Capza2', 'Triobp', 'Stard3nl', 'Ndufa7', 'Psma6', 'Thoc7', 'Ccni', 'Aurkaip1', 'Fastkd2', 'Arpc2', 'Ebna1bp2', 'Bcas2', 'Nolc1', 'Ran', 'Yrdc', 'Rtn4', 'Mrpl28', 'Cmc2', 'Sh3gl3', 'Sec13', 'Cops2', 'Bod1l', 'Fxr1', 'Brd7', 'Mis18a', 'Tomm70a', 'Grpel1', 'Tmem147', 'Lsm6', 'Hdac1', 'Pmpca', 'Cdc16', 'Rfc1', 'Pitpnb', 'Snx6', 'Sfpq', 'Coq2', 'Snx2', 'Ipo5', 'Exosc7', 'Nudt21', 'Actr10', 'Kras', 'Dad1', 'Ppp1r14b', 'Coa7', 'Lyar', 'Rcl1', 'Lef1', 'Nsrp1', 'Npc2', 'Tpm3', 'Tprgl', 'Coprs', 'Ccnd1', 'Rab10', 'Phax', 'Nsmce4a', 'Gnai3', 'Psip1', 'Eif1ax', 'Mrpl46', 'Mrps25', 'Rpap3', 'Mff', 'Fkbp3', 'Pcbp2', 'Sfxn1', 'Atp1a1', 'Rpl27a', 'Bccip', 'Top1', 'Gart', 'Ssbp1', 'Unc50', 'Atp5b', 'Tnpo1', 'Eif1ad', 'H1fx', 'Dst', 'Eef1e1', 'Rp9', 'Dpy30', 'Rpl5', 'Vps36', 'E2f5', 'Tbpl1', 'Lsm3', 'Med17', 'Txndc9', 'Son', 'Polr2i', 'Bckdhb', 'Ccnk', 'Cfap20', 'Hnrnpdl', 'Prpf40a', 'Nsun2', 'Pak1ip1', 'Stk16', 'Ccz1', 'Abcf2', 'Fnta', 'Mthfd2', 'Sigmar1', 'Mrps26', 'Slc25a4', 'Polr1c', 'Eif3g', 'Ssr2', 'Eif4ebp2', 'Sh3bgrl3', 'Ndufv3', 'Hsbp1', 'Gsr', 'Srsf5', 'Rbpms', 'Elob', 'Rnf138', 'Acat2', 'Nme4', 'Cse1l', 'Cfl1', 'Hnrnpl', 'Rpl22', 'Mrps22', 'Tsr3', 'Sf3b1', 'Tcof1', 'Plekhj1', 'Pkm', 'Tbc1d15', 'Eif4a1', 'Cdc34', 'Usp7', 'Tsn', 'Cdc42', 'Magoh', 'Psmd4', 'Pitpna', 'Psmd14', 'Cox5a', 'Washc4', 'Hdac2', 'Cenpq', 'Cnot1', 'Rnf126', 'Igbp1', 'Iars', 'Zc3h13', 'Ei24', 'Mrpl35', 'Cdk11b', 'C1d', 'Tsen34', 'Brix1', 'Srrt', 'Pdap1', 'Tcf4', 'Eif3c', 'Fkbp11', 'Car2', 'Fgfr1', 'Rps4x', 'Hnrnpab', 'Ndufa4', 'Ube2e3', 'Tomm7', 'Prpf8', '4930453N24Rik', 'Snx1', 'Ssu72', 'Rnf220', 'Plin3', 'Psat1', 'Acin1', 'Gfer', 'Stub1', 'Ptrhd1', 'Mrpl40', 'Rpl7', 'Zc3h15', 'Hnrnph1', 'Snx17', 'Sec31a', 'Brd3', 'Kars', 'Creld2', 'Ik', 'Cyfip1', 'Acbd6', 'Sox11', 'Prps1', 'Atp5o-1', 'Wdr61', 'Bora', 'Trip13', 'Hspe1', 'Rpl14', 'Pex13', 'Snrnp40', 'Rplp1', 'Lsm1', 'Smc3', 'Pcbp1', 'Fus', 'Imp4', 'Dhx36', 'Ppat', 'Cdca4', 'Psmb5', 'Uqcrfs1', 'Metap1', 'Tcp1', 'Dtymk', 'Trp53', 'Ndufaf6', 'Rpl38', 'Tpr', 'Ndufa6', 'Hmgn1', 'Shcbp1', 'Pdia3', 'Ppib', 'Gabarap', 'Tuba1b', 'Atp6v1e1', 'Smarcd1', 'Nmd3', 'Ep400', 'Phip', 'Supt16', 'Rab11b', 'Pdia4', 'Mcrip1', 'Gnl3', 'Naa38', 'Prdx5', 'Zc3h14', 'Chchd7', 'Mrpl44', 'Sra1', 'Kifc1', 'Thoc6', 'Sfr1', 'Pafah1b3', 'Gsk3b', 'Eif3a', 'Glo1', 'Nup98', 'Gmps', 'Dlat', 'Tpm4', 'Nol12', 'Rps12', 'U2af1', 'Ldha', 'Ilf2', 'Wdr33', 'Sapcd2', 'Trap1', 'Ncapg', 'Mrpl3', 'Ubfd1', 'Ccng1', 'Timm8b', 'Rbx1', 'Mrfap1', 'Me2', 'Rps16', 'Rpl36', 'Tead2', 'Polr2d', 'Cope', 'Arglu1', 'Hnrnpk', 'Rexo1', 'Exosc3', 'Rap1a', 'Tmed1', 'Kat7', 'Ube2t', 'Polr2j', 'Xpo1', 'Srp19', 'Mdk', 'Dcaf13', 'Suclg1', 'Srsf7', 'Dnajc24', 'Serf2', 'Dld', 'Cuta', 'Mrps14', 'Fundc2', 'Mrps11', 'Rrp1', 'Rrs1', 'Uqcrc1', 'Eif3d', 'Pdhb', 'Cct3', 'Rpl31', 'Spint2', 'Pop4', 'Fau', 'Sf1', 'Pomp', 'Rpl4', 'Lrrc59', 'Serp1', 'Rbm6', 'Prpf19', 'Eftud2', 'Ppp5c', 'Sugt1', 'Cenpn', 'Ptrh2', 'Hspa14', 'Psmd11', 'Pfdn5', 'Ttc14', 'Oat', 'Ndufa1', 'Ptp4a2', 'Bop1', 'Set', 'Etf1', 'Sar1a', 'Hspa4', 'Cap1', 'Impa1', 'Rpl26', 'Psmc1', 'Pim2', 'Map2k2', 'Rpl11', 'Nudcd3', 'Rnf187', 'Lamtor2', 'Psmg2', 'Bri3bp', 'Agpat3', 'Dimt1', 'Ahsa1', 'Ccdc86', 'Xrn2', 'Ddrgk1', 'Aplp2', 'Ctnna1', 'Cox5b', 'Elp5', 'Rbbp4', 'Ak6', 'Smarce1', 'Srrm2', 'Usp39', 'Cmss1', 'Pimreg', 'Ktn1', 'Actl6a', 'Max', 'Slc38a1', 'Mcph1', 'Aimp2', 'Sdhaf4', 'Snx5', 'Brk1', 'Rbbp7', 'Tmed10', 'Rab1a', 'Arf6', 'Bckdk', 'Rpl13a', 'Snrnp70', 'Dnttip2', 'Rock1', 'Eprs', 'Timm9', 'Exosc4', 'Eif3m', 'Kcmf1', 'Esd', 'Sf3b3', 'Pop5', 'Mfsd10', 'Hmgb3', 'Calm3', 'Maz', 'Ncaph2', 'Eif3l', 'Isyna1', 'Mta1', 'Tial1', 'Pmf1', 'Ppa1', 'Snrpb2', 'Ssr4', 'Psmd1', 'Iws1', 'Ctnnb1', 'Ndufb10', 'Nit2', 'Bod1', 'Ola1', 'Cxxc5', 'Pafah1b1', 'Arhgef39', 'Cetn3', 'Grwd1', 'Pten', 'Bysl', 'Ywhaz', 'Zfr', 'Hnrnpu', 'Exosc1', 'Nap1l4', 'Nop58', 'Vars', 'Ppa2', 'Rps13', 'Tcf25', 'Smdt1', 'L1td1', 'Acly', 'Higd1a', 'Trmt112', 'Mrpl2', 'Bclaf1', 'Bud23', 'Ndufb9', 'Trim28', 'Cops3', 'Rnaseh2c', 'Cers5', 'Map1lc3b', 'Anapc5', 'Cox8a', 'Idh1', 'Hsp90ab1', 'Ubac1', 'Ncl', 'Rsf1', 'Gde1', 'Rpl10a', 'Csnk1g2', 'Ubxn4', 'Vps35', 'Ythdc1', 'Chic2', 'Snrpd2', 'Ntmt1', 'Mettl1', 'Cdkn3', 'Tomm22', 'Ppcs', 'Zpr1', 'Ppie', 'Mrpl52', 'Tbrg1', 'Gmeb1', 'Eif4h', 'Nacc1', 'Apex1', 'Rps29', 'Fam192a', 'Nipbl', 'Sart3', 'Cox7a2', 'E2f4', 'Supt6', 'Nol7', 'Ctbp1', 'Fam216a', 'Usp14', 'Wee1', 'Tsen15', 'Ltv1', 'Hnrnpc', 'Sqle', 'Phgdh', 'Ago2', 'Fasn', 'Ndufb2', 'Fam83d', 'Rdx', 'Tm2d1', 'Cct2', 'Pbk', 'Ndufs4', 'Dnaja1', 'Hspa8', 'Slc3a2', 'H2afv', 'Zbtb12', 'Ndufab1', 'Larp7', 'Srp14', 'Marcksl1', 'Ext1', 'Rad21', 'Mrpl11', 'BC003965', 'Ndufc2', 'Gtf2i', 'Adk', 'Mrps28', 'Anapc16', 'Myl12a', 'Uqcr11', 'Slirp', 'Eny2', 'Gm10076', 'Tmem183a', 'Rpl18a', 'Eif2s2', 'Sf3a3', 'Polr2b', 'Glud1', 'Fth1', 'Bet1', 'Fkbp1a', 'Tpt1', 'Tars', 'Lsm7', 'Slc39a10', 'Mrpl16', 'Selenow', 'Tmsb10', 'Psmb4', 'Fam49b', 'Atad3a', 'Glrx2', 'Fam114a2', 'Cox7a2l', '1110004F10Rik', 'G3bp1', 'Rex1bd', 'March7', 'Chd1', 'Atp5j2', 'Ppid', 'Nup88', 'Taf10', 'Fbxl14', 'Kdm1a', 'Ndufa2', 'Pfdn4', 'Svbp', 'Yif1b', 'Ddost', 'Ybx1', 'Mphosph10', 'Ociad1', 'Erg28', 'Zcrb1', 'Cox7c', 'Cd81', 'Gng3', 'Ppp1r7', 'Kpna2', 'Nol11', 'Hdgf', 'Ddx56', 'Nup107', 'Utp20', 'Strap', 'Kdelr1', 'Cdc37', 'Hnrnph3', 'Aldoa', 'Eif3f', 'Rpl24', 'Mrpl54', 'Rtraf', 'Mbd3', 'Pitx2', 'C330027C09Rik', 'Cript', 'Znhit6', 'Dnajc21', 'Pigf', 'Ube2r2', 'Ipo7', 'Map4k4', 'Arf5', 'Mrps34', 'Gtf2f2', 'Capzb', 'Snrpn', 'Rpl36a', 'Nifk', 'N4bp1', 'Sltm', 'Pclaf', 'Pcm1', 'Hk2', 'Rfc4', 'Dhx9', 'Cdc123', 'Slc25a39', 'Ctps', 'Brd4', 'Ddx1', 'Rps8', 'Ndufb6', 'Rbm7', 'Emb', 'Acvr2b', 'Rps7', 'Huwe1', 'Ubl5', 'Nsfl1c', 'Tpd52l2', 'Pin1', 'Maged1', 'Rad50', 'Rpl28', 'Odf2', 'Cct4', 'Incenp', 'Hspd1', 'Arpc5l', 'Rbmxl1', 'Dhps', 'Rcor2', 'Cdk4', 'Mrpl51', 'Dynll1', 'Naa15', 'Memo1', 'Ddx24', 'Hnrnpd', 'Dnaja2', 'Ptk7', 'Eif1b', 'Mtx1', 'Eef1g', 'Selenof', 'Taf6l', 'Trappc13', 'Cep57', 'Rpl8', 'Smarcc1', 'Ncor1', 'Polr2m', 'Twistnb', 'Pgls', 'Faf1', 'Mettl9', 'Agpat5', 'Slc25a11', 'Cops5', 'Arf1', 'Fst', 'Hdac3', 'Krtcap2', 'Kpnb1', 'Cnn3', 'Mrps10', 'Timm17a', 'Tmbim6', 'Eif1', 'Pabpc1', 'Lsg1', '1110004E09Rik', 'Bex3', 'L3mbtl2', 'Mterf4', 'Mrps7', 'Ywhah', 'Rheb', 'Pdha1', 'Psmb1', 'Sdad1', 'Akr1a1', 'Trim59', 'Glrx3', 'Rpl21', 'Smu1', 'Gdi2', 'Yipf4', 'Med31', 'Rps15a', '1700020I14Rik', 'Aimp1', 'Nme1', 'Rps27', 'H3f3a', 'Siah1b', 'Banf1', 'Zfand6', 'Abce1', 'Taf3', 'Kif4', 'Mtfr1l', 'Itgb3bp', 'Slc35b2', 'Suds3', 'Rpn2', 'Serbp1', 'Wdr45b', 'Cetn2', 'Timm10', 'Edf1', 'Ndufa8', 'Pspc1', 'Eef1d', 'Sac3d1', 'Rnf10', 'Med6', 'Cnot3', 'Tuba1c', 'Rps9', 'Trmt6', 'Riox2', 'Gnas', 'Smg6', 'Rala', 'Tomm5', 'Med9', 'Tgif1', 'Cisd2', 'Ypel3', 'Selenok', 'Rpf1', 'Ndufb5', 'Ppp4c', 'Bag1', 'Ube2d1', 'Cmpk1', 'Mrpl47', 'Rbm10', 'Ddx54', 'Mtch2', 'Fscn1', 'Rab7', 'Psmd12', 'Prmt1', 'Lactb2', 'Rps27l', 'Asf1b', 'Oard1', 'Ube2d3', 'Mrpl57', 'D8Ertd738e', 'Oxa1l', 'Pnn', 'Usp16', 'Rpl23a', 'Naa20', 'Sptssa', 'Tmed9', 'Rars', 'Rbm8a', 'Abracl', 'Ndufc1', 'Nudcd2', 'Polr2a', 'Dmac1', 'Wbp2', 'Zmynd8', 'Nudc', 'mt-Nd2', 'Rbm25', 'Mybbp1a', 'Dbi', 'Kctd5', 'Ppp2ca', 'Ruvbl1', 'Pnisr', 'Sept7', 'Klhdc3', 'Nt5dc2', 'Wdr4', 'Ndufb11', 'Bzw1', 'Mvk', 'Cox4i1', 'Uba1', 'Tmem14c', 'Fcf1', 'Samm50', 'Tgs1', 'Mat2a', 'Rtf2', 'H2afz', 'Zrsr2', 'Prmt5', 'Eif4g3', 'St13', 'Jmjd6', 'Rps18', 'Rpl6', 'Dapk1', 'Rps3a1', 'Acadm', 'Cyb5b', 'Glyr1', 'Smad4', 'Samd4b', 'Mettl2', 'Rpl34', 'Psmc4', 'Arhgap19', 'Aven', 'Arid2', 'Aaas', 'Snrpf', 'Exosc8', 'Rhoa', 'B9d1', 'Wdr77', 'Umps', 'Ubald2', 'Itm2b', 'Aco2', 'Phf5a', 'Ndufs6', 'Selenos', 'Eef1akmt1', 'Cox7b', 'Rps19bp1', 'Ndufs8', 'Wdr12', 'Rpl41', 'Snf8', 'Melk', 'Ide', 'Znhit3', 'Taldo1', 'Atp5j', 'Rnaseh2a', 'Ndufv1', 'Chd4', 'Ubxn1', 'Abhd17a', 'Malat1', 'Ngrn', 'Slc25a3', 'Adipor1', 'Ddx39', 'Rpl37', 'Hnrnpa2b1', 'Hpf1', 'Ubtf', 'Kat8', 'Ndufs7', 'Chtop', 'Prelid1', 'Snx3', 'Nedd8', 'Ppm1g', 'Emg1', 'Lage3', 'Wdr43', 'Ppp1ca', 'Ppp2r1a', 'Mrps17', 'Cycs', 'Lsm10', 'Wdr75', 'Ddx42', 'Cct8', 'Aasdhppt', 'Nop9', 'Brd8', 'Maea', 'Adss', 'Ppia', 'Ddx21', 'Rce1', 'Npm3', 'Arl2', 'Ttc5', 'Mrps15', 'Rpl22l1', 'Mrpl22', 'Ost4', 'Rbm17', 'Akirin2', 'Mrpl58', 'Rps28', 'Eif3h', 'Ssb', 'Mlf2', 'Kif15', 'Ptpn2', 'Mrpl37', 'Elof1', 'Jagn1', 'Aqr', 'Park7', 'Tex10', 'Impdh2', 'Atp5h', 'Ctbp2', 'Ccdc59', 'Dnajc7', 'Surf2', 'Rpl32', 'Zcchc11', 'Gm10036', '1810058I24Rik', 'Atf4', 'Vmp1', 'Otud5', 'Ddx41', 'Mrpl18', 'Rab2a', 'Psmg1', 'Slc38a2', 'Thop1', 'Sephs1', 'Rpl13', 'Mmadhc', 'Gars', 'Gnl2', 'Knl1', 'Rtf1', 'Skp1a', 'Nob1', 'U2surp', 'Phf20', 'Alyref', '2810004N23Rik', 'Prdx2', 'Utp23', 'Vapa', 'mt-Nd5', 'Sdhb', 'Fkbp4', 'Tmem165', 'Ostc', 'Tra2a', 'Wnk1', 'Gapdh', 'Nabp2', 'Naa50', 'Rbm22', 'Larp1', 'Thoc3', 'Capns1', 'Morf4l1', 'Smc2', 'Psmd8', 'Nip7', 'Gspt1', 'Nisch', 'G6pdx', 'Ythdf2', 'Kif22', 'Eif4a3', 'Spc24', 'Mrto4', 'Snrpa', 'Vcp', 'Nsa2', 'Rbm39', 'Srsf9', 'Prpf31', 'Gnai2', 'Gtpbp4', 'Mrps18a', 'Psma2', 'Mdp1', 'Nup43', 'Med19', 'Mapk1', 'Gm8186', 'Pfkl', 'Cox6c', 'Adrm1', 'Ralbp1', 'Rabl6', 'Llph', 'Rrp12', 'Grk6', 'Senp3', 'Ube3a', 'Rpl12', 'Tkt', 'Trim27', '2010107E04Rik', 'Canx', 'Rpl35a', 'Itpa', 'Rplp0', 'Dhx15', 'Fkbp2', 'Thyn1', 'Smim7', 'Nxf1', 'Srsf6', 'Pnpla8', 'Ddx10', 'Ncbp1', 'Eif3i', 'Hnrnpa0', 'Ndufa9', 'Rabggtb', 'Srsf4', 'Arf3', 'Sec62', 'Idh3g', 'Mrps9', 'Copz1', 'Ppp1r11', 'Kif18a', 'Dnajb1', 'Ccnh', 'Blmh', 'Siva1', 'Nde1', 'Csde1', 'Psme1', 'Aspm', 'Mrpl24', 'Dkc1', 'Abcf1', 'Marcks', 'Gsta4', 'Fam204a', 'Ccm2', 'Sf3b2', 'Dars', 'Srsf11', 'Mrps35', 'Lsm12', 'Gpx1', 'Phb2', 'Nae1', 'Cenpw', 'Idh3a', 'Rrbp1', 'Tsc22d1', 'Ndufa5', 'Snrpd3', 'Kpna3', 'Rplp2', 'Rnmt', 'Ciapin1', 'Hikeshi', 'Mcm3', 'Uqcrc2', 'Rps2', 'Atxn10', 'Nme6', 'Hars', 'Atic', 'Dap3', 'Pdcd2l', 'Trappc5', 'Ddb1', 'Tbp', 'Yeats4', 'Polr2f', 'Cct7', 'Commd7', 'Atp6v1d', 'Dynlrb1', 'Racgap1', 'Rps11', 'Napa', 'Znhit1', 'Ttc1', 'Txnrd1', 'Dnajc15', 'Alad', 'Mdh2', 'Brcc3', 'Csnk1a1', 'Eef1b2', 'Utp18', 'Rpl7a', 'Timm22', 'Sdccag3', 'Tnpo3', 'Immp1l', 'Tecr', 'Smchd1', 'Rcc2', 'Pbx2', 'Slc24a5', 'Zfp771', 'H2afx', 'Gpatch4', 'Ptges3', 'Mpp6', 'Tbcb', 'Rab14', 'Ormdl2', 'Atox1', 'Pcbp4', 'Farsa', 'Gemin5', 'Rpl9-ps6', 'Eno1', 'Actr3', 'Psma7', 'Cdc26', 'Pdia6', 'Eif6', 'Mlx', 'C1qbp', 'Kdm5b', 'Sars', 'Bptf', 'Mrpl21', 'Ndufb7', 'Mrpl45', 'Coa3', 'Dis3', 'Ctu2', 'Dgcr6', 'Vbp1', 'Mphosph6', 'Hnrnpa1', 'Akap8', 'Pgd', 'Fbxo5', 'Dcps', 'Seh1l', 'Tmem160', 'Uqcr10', 'Atf1', 'Mrpl12', 'Srrm1', 'Senp6', 'Ndufb8', 'Rps19', 'Fzr1', 'Psmb3', 'Tbca', 'Nars', 'Fh1', 'Eif4g2', 'Sar1b', 'Nap1l1', 'Sec61b', 'Gcsh', 'Eef2', 'Dnmt3b', 'Hsp90aa1', 'Fbxo22', 'Ranbp1', 'Atp1b3', 'Prrc2c', 'Lamtor4', 'Ftsj3', 'Nfyb', 'Ubap2', 'Ppan', 'Pabpc4', 'Sin3b', 'Guk1', 'Snu13', 'Nubp1', 'Tceal9', 'Actr1b', 'Mrps16', 'Paip1', 'Hprt', 'Zmat2', 'Hmgn2', 'Ezh2', 'Ssbp3', 'Eif4e2', 'Cops9', 'Chchd4', 'Rbm28', 'Anapc10', 'Caprin1', 'Urod', 'Tmem237', 'Mpnd', 'Rsl24d1', 'Soat1', 'Mrpl17', 'Pa2g4', 'Esf1', 'Cpsf6', 'Mrps12', 'Eif3k', 'Cacybp', 'Pum1', 'Taf11', 'Ppp6c', 'Swi5', 'Wapl', 'Gatad2a', 'Snrpb', 'Sde2', 'Isca2', 'Wdr89', 'Rnf115', 'Setd5', 'mt-Nd1', 'Nup85', 'Lmnb1', 'Mcm7', 'Ccar1', 'Rnf146', 'Rsl1d1', 'Rpl37a', 'Bex1', 'Ppig', 'Bms1', 'Supt4a', 'Cstb', 'Sgo1', 'Atp5d', 'Nup37', 'Ube2e1', 'Psmb7', '0610012G03Rik', 'Prrc2a', 'Yipf5', 'Exosc9', 'Ube2m', 'Mum1', 'Smarca5', 'Ywhaq', 'Lamtor5', 'Atp5g1', 'Mrps24', 'Sod2', 'Sf3b5', 'Thg1l', 'Echs1', 'Prmt7', 'Ccdc34', 'Srp9', 'Utp11', 'Psma1', 'Ak2', 'Ybx3', 'Pym1', 'Ndufb3', 'Traf7', 'Prep', 'Mrpl27', 'Mpdu1', 'Lamp1', 'Dicer1', 'Ska1', 'Sub1', 'Cdv3', 'Sephs2', 'Ghitm', 'Epcam', 'Hspa9', 'Tmem230', 'Trappc4', 'Dstn', 'Gclm', 'Ryk', 'Csnk2b', 'Tmem11', 'mt-Nd4', 'Rps17', 'Birc6', 'Kif20a', 'Rrp9', 'Rpp30', 'Rcc1', 'Dcakd', 'Cwc15', 'Ptma', 'Chmp2b', 'Ngdn', 'Psmd2', 'Skiv2l2', 'Vdac1', 'Parp1', 'Bola3', 'Dars2', 'Rps20', 'Dnajc11', 'Igf2bp1', 'Tmem39b', 'Chmp2a', 'Spcs1', 'Lrrfip2', 'Ube2j2', 'Calm1', 'Ddx39b', 'Srsf2', 'Zwint', 'Clint1', 'Nedd4', 'Dpp3', 'Cd63', 'Vdac3', 'Mif', 'Nup35', 'Limd2', 'Eif2b5', 'Eif4e', 'Hnrnpr', 'Ppih', 'Gnb1', 'Spr', 'Ppp2r2d', 'Matr3', 'Hectd1', 'Chchd1', 'Hmgcs1', 'Zfand5', 'Lars', 'Ufc1', 'Atp6v0b', 'Bola2', 'Bsg', 'Dnajc2', 'Ankrd17', 'Las1l', 'Eif3e', 'Dctn2', 'Lsm2', 'Tpi1', 'Eif2a', 'Gng5', 'Tpm2', 'Ndufa13', 'Hint1', 'Zfp706', 'H2afy', 'Golga4', 'Cpsf2', 'Dhx30', 'Uba2', 'Rps24', 'Tmem258', 'Dus1l', 'Ppp1r2', 'Atp5c1', 'Cst3', 'Slc25a5', 'Rac1', 'Denr', 'Aggf1', 'Reep4', 'Thrap3', 'Esco2', 'Dda1', 'Cad', 'Fam136a', 'Hax1', 'Tmem126a', 'Rtcb', 'Usp34', 'Ergic2', '1110038F14Rik', 'Timm50', 'Gm2000', 'Rab11a', 'Atp5f1', 'Polr2e', 'Cdk12', 'Ndufs2', 'Gemin6', 'Naca', 'Hat1', 'Cnot7', 'Kdelr2', 'Sgo2a', 'Ergic3', 'Jpt1', 'Crebbp', 'Ptcd2', 'Hdlbp', 'Pkp4', 'Poldip2', 'Cuedc2', 'Tspan31', 'Commd6', 'Ube2a', 'Psme3', 'Emc7', 'Lap3', 'Prmt3', 'Nucks1', 'Gpn1', 'Rps3', 'Utp14a', 'Rpl23', 'Tcf3', 'Spop', 'Scamp3', 'Dctn3', 'Nono', 'Galk1', 'Rbpms2', 'Smc6', 'Dbf4', 'Mrpl1', 'Metap2', 'Rpl7l1', 'Atp5g3', 'Akap9', 'Ankrd11', 'Lsm8', 'Bcap31', 'Med7', 'Rif1', 'Med10', 'Adh5', 'Eif5a', 'Psma5', 'Pbdc1', 'Use1', 'Prkar1a', 'Sdha', 'Rpl9', 'Wasf1', 'Nop56', 'Ccna2', 'Polr3k', 'Ubl3', 'Pqbp1', 'Ptpa', 'Rrp1b', 'Ssna1', 'Timm13', 'Prpf38b', 'Pgp', 'Wbp11', 'Sppl3', 'Cdk2ap1', 'Chmp5', 'Pelp1', 'Psmc3', 'Cops8', '9130401M01Rik', 'Uri1', 'Eif4a2', 'Rps15', 'Cdkn2aipnl', 'Ddx27', 'Dazap1', 'Tsen2', 'Bcl7c', 'Cbr1', 'Ccdc124', 'Rpl27', 'Ubb', 'Nxt1', 'Nsd1', 'Mrpl34', 'Fis1', 'Kif5b', 'Laptm4a', 'Arid1a', 'Gpatch8', 'Tax1bp1', 'Ccnf', 'Chchd2', 'Pdcd10', 'Asxl1', 'Mrpl20', 'Ppp2r5d', 'Cct5', 'Tmem256', 'Emc10', 'Scaf11', 'Rpn1', 'Aprt', 'Sdhd', 'Ppil1', 'Flna', 'Cd164', 'Pak2', 'Atp6v1b2', 'Gtf2e2', 'Rexo2', 'Actn4', 'Hnrnpm', 'Ywhae', 'Noc4l', 'Fam32a', 'Cnih4', 'Pfn1', 'Rpl19', 'Bub3', 'Cnpy2', 'Spcs2', 'Rap1b', 'Tomm20', 'Sap30bp', 'Eml4', 'Ebp', 'Med30', 'Eef1a1', 'Wdr1', 'Lsm5', 'Fam162a', 'Aldh9a1', 'Mrps30', 'Uqcc3', 'Snrnp25', 'Ddx3x', 'Tomm40', 'Otub1', 'Surf4', 'Mlec', 'Farsb', 'Polr2g', 'Nup50', 'Rnf4', 'Glrx5', 'Pdcl3', 'Babam1', 'Rps10', 'Znrd1', 'Gtf2a2', 'Eif5b', 'Rraga', 'Armc1', 'Drap1', 'Usmg5', 'Thoc2', 'Nsmce2', 'Morf4l2', 'March5', 'Cisd1', 'Mrpl13', 'Mrpl50', 'Ndufa11', 'Rack1', 'Copb2', 'Txnl4a', 'Smn1', 'Eid2', 'Clptm1l', 'Eif1a', 'Hsd17b12', 'Rrp8', 'Cyth2', 'Rae1', 'Nop53', 'Rps23', 'Sgta', 'Gadd45gip1', 'Mad2l1', 'Cltc', 'Ube2f', 'Rnf7', 'Zranb2', 'Rest', 'Sf3b6', 'Timm21', 'Msantd3', 'Ptbp1', 'Dek', 'Ddx18', 'Suclg2', 'Asf1a', 'Mapre1', 'Cyb5a', 'Slc25a1', 'Tmem97', 'Ndufa10', 'Ing1', 'Anapc13', 'Wdr18', 'Chchd6', 'Csnk2a1', 'Ddx52', 'Elavl1', 'Rpl15', 'Scd2', 'Gtf2h3', 'Pum2', 'Srsf1', 'Psmc2']}
Mesoderm novel cc genes: 104 new S genes; 1600 new G2M genes
{'S': ['Dhfr', 'Paics', 'Eed', 'Ppa1', 'Uba2', 'Ccne1', 'Hspd1', 'Wdr5', 'Lig1', 'Rcc2', 'Ddx39', 'Msh6', 'Tcof1', 'Eif4a1', 'Ppm1g', 'Hnrnpd', 'Magoh', 'Fam136a', 'Rbmxl2', 'Cenpm', 'Ddx21', 'Nop58', 'Polr2e', 'Trap1a', 'Hat1', 'L1td1', 'Fbxo5', 'Mcm10', 'Srrt', 'Trim28', 'Csrp2', 'Dut', 'Dctpp1', 'Ncl', 'Ezr', 'Rbpms2', 'Nap1l1', 'Dnmt3b', 'Hsp90aa1', 'Rif1', 'Gm10036', 'Ftsj3', 'Mrpl18', 'Smc3', 'Ppat', 'Tra2b', 'Rrp1b', 'Hmgn2', 'Ezh2', 'G3bp2', 'Dtymk', 'Npm1', 'Fkbp4', 'Pa2g4', 'Tuba1b', 'Cacybp', 'Nhp2', 'Taf7', 'Spc24', 'Shmt1', 'Lmnb1', 'Mcm7', 'Rfc5', 'Rsl1d1', 'Ppil1', 'Syce2', 'Ina', 'Chaf1a', 'Nup43', 'Sf3a3', 'Srsf3', 'Nolc1', 'Srsf7', 'Orc6', 'Rpl35a', 'Oard1', 'Cct3', 'Sub1', 'Snrpg', 'G3bp1', 'Lyar', 'Anp32b', 'Hspa14', 'Pla2g1b', 'Dkc1', 'Set', 'Ptma', 'Nsmce4a', 'Parp1', 'Gar1', 'Trim71', 'H2afz', 'Fkbp3', 'Rbbp4', 'Alg13', 'Mcm3', 'Srsf2', 'Gart', 'Actl6a', 'Dek', 'Bex4', 'Dpy30', 'Phf5a', 'Lsm3'], 'G2M': ['Upf3b', 'Psmb2', 'Myg1', 'Snrnp27', 'Mrpl42', 'Frg1', 'Mrpl39', 'Snrpd1', 'Rnf44', 'Ppif', 'Paics', 'Rhno1', 'Eif2b3', 'Mak16', 'Fbl', 'Psmd6', 'Cdk7', 'Ruvbl2', 'Ehmt1', 'Lin28a', 'Pfdn1', 'Lig1', 'Gtf3c6', 'Rpl18', 'Espl1', 'Rps6ka1', 'Terf1', 'Nup133', 'Bub1b', 'Tceal8', 'Kmt5a', 'Cul5', 'Gnpat', 'Timm17b', 'Ivns1abp', 'Rps21', 'Ash2l', 'Parp2', 'Tbl3', 'Zc2hc1a', 'Nfyc', 'Ewsr1', 'Med28', 'Pum3', 'Ddx5', 'Dut', 'Bax', 'Pdcd11', 'Dctpp1', 'Ttc3', 'Prdx6', 'Rbm26', 'Snrpc', 'Idh2', 'Prpf38a', 'Rrp15', 'Ube2k', 'Cd3eap', 'Zfp106', 'Rps14', 'Uqcrb', 'Nop14', 'Zc3hc1', 'Cd320', 'Uchl3', 'Sall4', 'Psmc5', 'Impact', 'Mrpl55', 'Rps25', 'Tbl1x', 'G3bp2', 'Ube2d2a', 'Atp5k', 'Smarca4', 'Dnaja3', 'Igf2bp3', 'Usp10', 'Npm1', 'Bex2', 'Hsp90b1', 'Cpsf4', 'Mnat1', 'Ubap2l', 'Mgea5', 'Tfg', 'Lsm4', 'Parl', 'Ddx20', 'Igfbp2', 'Pbrm1', 'Eif2s1', 'Ddx47', 'Taf7', 'Mrps5', 'Gemin2', 'Tada2a', 'Celf1', 'Phf23', 'Prpf4b', 'Ythdf1', 'Pcgf6', 'Rfc5', 'Lrrc40', 'Med4', 'Btf3', 'Clns1a', 'Erh', 'Hacd2', 'Luc7l', 'Txnl1', 'Dnajc19', 'Phb', 'Stoml2', 'Srsf3', 'Ube2g1', 'Rab9', 'Glul', 'Etaa1', 'Cnbp', 'Ilf3', 'Gtf2h5', 'Eif3j2', 'Eloc', 'Cdc5l', 'Cops4', 'Rpl17', 'Mars', 'Pfdn6', 'Suz12', 'Atp5a1', 'Paip2', 'Mat2b', 'Sem1', 'Mis18bp1', 'Plk1', 'Naf1', 'Etfa', 'Rps27a', 'Pmpcb', 'Snrpg', 'Ppil4', 'Haus1', 'Tbrg4', 'Mrpl4', 'Topors', 'Enoph1', 'Cebpz', '1110008F13Rik', 'Qdpr', 'Tfdp1', 'Hbs1l', 'Raf1', 'Rbbp6', 'Lsr', 'Anp32b', 'Eif5', 'Pfdn2', 'Mllt10', 'Gm47283', 'Tjap1', 'Eif4b', 'Polr2h', 'Wtip', 'Srpk1', 'Rpl35', 'Pold2', 'Hspbap1', 'Psmd3', 'Gar1', 'Psmd7', 'Smc1a', 'Trnt1', 'Ddt', 'Vrk1', 'Anp32a', 'Mtf2', 'Actb', 'Pno1', 'Fip1l1', 'Pwp1', 'Tcerg1', 'Hddc2', 'Rpf2', 'Cfdp1', 'Pcid2', 'Ap1ar', 'Bex4', 'Psmc6', 'Mrpl43', 'Api5', 'Jpt2', 'Calm2', 'Pes1', 'Taf1d', 'Isg20l2', 'Psma4', 'Nampt', 'Ccdc58', 'Myl12b', 'Trnau1ap', 'Rhebl1', 'Dnajc9', 'Rida', 'Dnmt1', 'Ing5', 'Ndufv2', 'Arl6ip1', 'Psma3', 'Hdgfl2', 'Nmt2', 'Ddx46', 'Rbm42', 'Tiprl', 'Mrps31', 'Sarnp', 'Lsm14a', 'Rpl3', 'Selenoh', 'Eed', 'Emc6', 'Papola', 'Prc1', 'Aldh7a1', 'Snw1', 'Coq7', 'Ssrp1', 'Nelfe', 'Rpl10', 'Ccdc77', 'Btbd2', 'Drg2', 'Dnajc8', 'Knop1', 'Htatsf1', 'Rps5', 'Cyc1', 'Asna1', 'Hnrnpll', 'Rpsa', 'Numa1', 'Sssca1', 'Eif3b', 'Clpp', 'Utp3', 'Mdh1', 'Arhgap11a', 'Yars', 'Polr3g', 'Eif4g1', 'Phf14', 'Nop10', 'Snrpe', 'Mtx2', 'Cops6', 'Ncaph', 'Fmc1', 'Acsl3', 'Yars2', 'Got2', 'Puf60', 'Sf3a1', 'Ptprf', 'Med8', 'Psmb6', 'Cox6a1', 'Leo1', 'Prpsap1', 'Smarcb1', 'Srek1', 'Taf15', 'Spout1', 'Trir', 'Cmas', 'Cdt1', 'Tra2b', 'Got1', 'Hcfc1', 'Trub1', 'Arhgdia', 'Rsrc2', 'Spdl1', 'Rtn3', 'Ubqln1', 'Sec23b', 'Slc25a13', 'Nemf', 'Rps6', 'Mrpl38', 'Cenpx', 'Luc7l3', 'Bzw2', 'Arid4b', 'Mphosph8', 'Nelfa', 'Larp4', 'Srp68', 'Hadh', 'Nhp2', 'Cenpp', 'Hnrnpf', 'Mthfd1', 'Ccnl2', 'Cnot2', 'Impa2', 'Stip1', 'Fubp1', 'Cenph', 'Cbx1', 'Anapc11', 'Atpif1', 'H3f3b', 'Vdac2', 'Mcrs1', 'Tfam', 'Rps26', 'Tubg1', 'Ndufa7', '2310033P09Rik', 'Zmym4', 'Psma6', 'Aurkaip1', 'Ebna1bp2', 'Bcas2', 'Nolc1', 'Ran', 'Yrdc', 'Mrpl28', 'Cwf19l2', 'Cmc2', 'Cops2', 'Bod1l', 'Fxr1', 'Brd7', 'Mis18a', 'Orc6', 'Tomm70a', 'Rpp40', 'Grpel1', 'Lsm6', 'Elp2', 'Ralgps2', 'Hdac1', 'Pmpca', 'Rfc1', 'Suv39h2', 'Sfpq', 'Ipo5', 'Exosc7', 'Nudt21', 'Ppp1r14b', 'Kras', 'Coa7', '1190007I07Rik', 'Cenpc1', 'Lyar', 'Rcl1', 'Mycn', 'Lef1', 'Safb', 'Tpm3', 'Phax', 'Nsmce4a', 'Gnai3', 'Psip1', 'Eif1ax', 'Fkbp3', 'Pcbp2', 'Sfxn1', 'Rpl27a', 'Bccip', 'Top1', 'Gart', 'Ssbp1', 'Atp5b', 'Tnpo1', 'Eif1ad', 'Wdr36', 'H1fx', 'Eef1e1', 'Rp9', 'Dpy30', 'Rpl5', 'Vps36', 'E2f5', 'Lsm3', 'Med17', 'Son', 'Polr2i', 'Actr6', 'Ccnk', 'Cfap20', 'Hnrnpdl', 'Eme1', 'Nsun2', 'Prpf40a', 'Pak1ip1', 'Sart1', 'Tle4', 'Ccz1', 'Abcf2', 'Wdr55', 'Cd2ap', 'Fnta', 'Dmwd', 'Polr1c', 'Cenpv', 'Eif3g', 'Ssr2', 'Eif4ebp2', 'Rps6ka6', 'Srsf5', 'Rbpms', 'Rpl22', 'Rnf138', 'Hnrnpl', 'Nme4', 'Cse1l', 'Cfl1', 'Mrps22', 'Sf3b1', 'Tcof1', 'Plekhj1', 'Pkm', 'Tbc1d15', 'Eif4a1', 'Cdc34', 'Usp7', 'Tsn', 'Magoh', 'Rras2', 'Ccdc18', 'Fiz1', 'Psmd4', 'Psmd14', 'Cox5a', 'Hdac2', 'Cenpq', 'Cnot1', 'Rnf126', 'Iars', 'Zc3h13', 'Ubac2', 'Mrpl35', 'Cdk11b', 'Strn4', 'Tsen34', 'Brix1', 'Srrt', 'Pdap1', 'Eif3c', 'Car2', 'Hnrnpab', 'Rps4x', 'Ndufa4', 'Ube2e3', 'Tomm7', 'Prpf8', 'Rnf220', 'Psat1', 'Acin1', 'Gfer', 'Stub1', 'Mrpl40', 'Rpl7', 'Zc3h15', 'Hnrnph1', 'Kars', 'Brd3', 'Prps1', 'Atp5o-1', 'Uchl5', 'Trip13', 'Hspe1', 'Rpl14', 'Atg101', 'Snrnp40', 'Rplp1', 'Lsm1', 'Smc3', 'Pcbp1', 'Fus', 'Imp4', 'Dhx36', 'Ppat', 'Cdca4', 'Psmb5', 'Uqcrfs1', 'Metap1', 'Tcp1', 'Dtymk', 'Trp53', 'Ndufaf6', 'Gpn3', 'Rpl38', 'Tpr', 'Ndufa6', 'Hmgn1', 'Lrrc42', 'Shcbp1', 'Tuba1b', 'Smarcd1', 'Nmd3', 'Supt16', 'Gnl3', 'Zc3h14', 'Chchd7', 'Mrpl44', 'Thoc6', 'Kifc1', 'Sfr1', 'Pafah1b3', 'Pom121', 'Ttc4', 'Eif3a', 'Glo1', 'Gmps', 'Dlat', 'Nol12', 'Zcchc8', 'Rps12', 'U2af1', 'Ldha', 'Ilf2', 'Ikbkap', 'Srsf10', 'Wdr33', 'Sapcd2', 'Trap1', 'Ncapg', 'Ubfd1', 'Rbx1', 'Mrfap1', 'Me2', 'Rps16', 'Rpl36', 'Tead2', 'Polr2d', 'Hnrnpk', 'Arglu1', 'Chchd1', 'Exosc3', 'Kat7', 'Ube2t', 'Polr2j', 'Xpo1', 'Srp19', 'Mdk', 'Dcaf13', 'Suclg1', 'Srsf7', 'Dnajc24', 'Mrps14', 'Rrp1', 'Rrs1', 'Uqcrc1', 'Eif3d', 'Cct3', 'Rpl31', 'Spint2', 'Timeless', 'Pop4', 'Fau', 'Sf1', 'Crlf3', 'D030056L22Rik', 'Plekhf2', 'Ecd', 'Enah', 'Pomp', 'Rpl4', 'Lrrc59', 'Zc3h18', 'Prpf19', 'Eftud2', 'Tdp1', 'Ppp5c', 'Sugt1', 'Mrpl49', 'Cenpn', 'Ptrh2', 'Hspa14', 'Mettl16', 'Bop1', 'Set', 'Etf1', 'Riok1', 'Haus4', 'Hspa4', 'Rpl26', 'Psmc1', 'Pttg1', 'Nudcd3', 'Rpl11', 'Rnf187', 'Cpsf3', 'Psmg2', 'Paxip1', 'Ahsa1', 'Ccdc86', 'Xrn2', 'Cep44', 'Ctnna1', 'Cox5b', 'Elp5', 'Rbbp4', 'Ak6', 'Smarce1', 'Srrm2', 'Usp39', 'Cmss1', 'Pimreg', 'Ktn1', 'Actl6a', 'Zscan10', 'Aimp2', 'Snx5', 'Rbbp7', 'Rbm27', 'Pithd1', 'Rpl13a', 'Snrnp70', 'Dnttip2', 'Eprs', 'Timm9', 'Exosc4', 'Eif3m', 'Kcmf1', 'Sf3b3', 'Pop5', 'Hmgb3', 'Maz', 'Ncaph2', 'Eif3l', 'Thumpd3', 'Isyna1', 'Dhfr', 'Kat2a', 'Mta1', 'Syncrip', 'Tial1', 'Pmf1', 'Ppa1', 'Snrpb2', 'Kcnq1ot1', 'Iws1', 'Cep192', 'Nit2', 'Bod1', 'Ola1', 'Cxxc5', 'Cetn3', 'Grwd1', 'Bysl', 'Ywhaz', 'Hnrnpu', 'Exosc1', 'Cdc40', 'Wdr3', 'Nap1l4', 'Nop58', 'Vars', 'Ppa2', 'Rps13', 'Tcf25', 'Srbd1', 'L1td1', 'Acly', 'Higd1a', 'A430005L14Rik', 'Mrpl2', 'Bclaf1', 'Bud23', 'Trim28', 'Cops3', 'Setd3', 'Anapc5', 'Hsp90ab1', 'Ubac1', 'Ncl', 'Ezr', 'Rpl10a', 'Csnk1g2', 'Ythdc1', 'Snrpd2', 'Mettl1', 'Cdkn3', 'Tomm22', 'Zpr1', 'Xrcc6', 'Ppie', 'Eif4h', 'Apex1', 'Rps29', 'Fam192a', 'Oip5', 'Sart3', 'Cox7a2', 'Pnpt1', 'Eri1', 'Supt6', 'Arxes1', 'E2f4', 'Nol7', 'Usp14', 'Wee1', 'Ltv1', 'Hnrnpc', 'Phgdh', 'Fasn', 'Fam83d', 'Rdx', 'Cct2', 'Pbk', 'Ndufs4', 'Dnaja1', 'Hspa8', 'H2afv', 'Ndufab1', 'Larp7', 'Marcksl1', 'Abt1', 'Shmt1', 'Rad21', 'Mrpl11', 'BC003965', 'Gtf2i', 'Adk', 'Mrps28', 'Uqcr11', 'Syce2', 'Eny2', 'Tmem183a', 'Rpl18a', 'Eif2s2', 'Sf3a3', 'Polr2b', 'Fpgs', 'Tars', 'Lsm7', 'Thumpd1', 'Mrpl16', 'Ppp4r3a', 'Psmb4', 'Fam49b', 'Atad3a', '1110004F10Rik', 'Ylpm1', 'G3bp1', 'Cwc27', 'Chd1', 'Atp5j2', 'Ppid', 'Nup88', 'Taf10', 'Fbxl14', 'Kdm1a', 'Pfdn4', 'Yif1b', 'Slc9a3r1', 'Nol8', 'Ybx1', 'Mphosph10', 'Cox7c', 'Ppp1r7', 'Kpna2', 'Nol11', 'Hdgf', 'Ddx56', 'Taf5', 'Nup107', 'Strap', 'Arl5a', 'Hnrnph3', 'Aldoa', 'Eif3f', 'Rpl24', 'Traf4', 'Mrpl54', 'Rtraf', 'Mbd3', 'Alg13', 'C330027C09Rik', 'Cnot10', 'Znhit6', 'Dnajc21', 'Pigf', 'Dmac2', 'Mrps34', 'Gtf2f2', 'Snrpn', 'Cenpl', 'Rpl36a', 'Nifk', 'N4bp1', 'Sltm', 'Pclaf', 'Pcm1', 'Hk2', 'Rfc4', 'Dhx9', 'Cdc123', 'Ctps', 'Kmt5c', 'Brd4', 'Ddx1', 'Rps8', 'Nipsnap1', 'Acvr2b', 'Rps7', 'Huwe1', 'Nsfl1c', 'Tpd52l2', 'Senp1', 'Pin1', 'Rnaseh2b', 'Rpl28', 'Odf2', 'Cct4', 'Ccne1', 'Incenp', 'Hspd1', 'Rbmxl1', 'Wdr5', 'Rcor2', 'Cdk4', 'Malsu1', 'Dynll1', 'Mrpl51', 'Smndc1', 'Naa15', 'Topbp1', 'Mnd1', 'Hnrnpd', 'Dnaja2', 'Mtx1', 'Eef1g', 'Trappc13', 'Cep57', 'Rpl8', 'Smarcc1', 'Ncor1', 'Polr2m', 'Twistnb', 'Faf1', 'Mettl9', 'Gtf3a', 'Thoc1', 'Agpat5', 'Slc25a11', 'Ctnnbl1', 'Cops5', 'Arf1', 'Kpnb1', 'Grhpr', 'Cnn3', 'Mrps10', 'Timm17a', 'Gm10093', 'Taf6', 'Preb', 'Eif1', 'Dynlt1f', 'Chd6', 'Lsg1', 'Bex3', 'L3mbtl2', 'Ywhah', 'Pdha1', 'Orc2', 'Psmb1', 'Sdad1', 'Trim59', 'Glrx3', 'Rpl21', 'Smu1', 'Gdi2', 'Rps15a', 'Aimp1', 'Nme1', 'Rps27', 'H3f3a', 'Siah1b', 'Banf1', 'Zfand6', 'Abce1', 'Taf3', 'Kif4', 'Hnrnpa3', 'Itgb3bp', 'Mbtd1', 'Suds3', 'Serbp1', 'Get4', 'Hirip3', 'Eef1d', 'Pspc1', 'Afdn', 'Rnf10', 'Epop', 'Med6', 'Cnot3', '3110082I17Rik', 'Tuba1c', 'Rps9', 'Trmt6', 'Riox2', 'Tomm5', 'Rpf1', 'Ndufb5', 'Ppp4c', 'Mrpl47', 'Rbm10', 'Ddx54', 'Mtch2', 'Ubqln4', 'Fscn1', 'Psmd12', 'Prmt1', 'Rps27l', 'Asf1b', 'Oard1', 'Ube2d3', 'D8Ertd738e', 'Oxa1l', 'Pnn', 'Rpl23a', 'Rars', 'Eif2b4', 'Rbm8a', 'Ndufc1', 'Polr1a', 'Nudcd2', 'Polr2a', 'Agtrap', 'Dmac1', 'Nudc', 'mt-Nd2', 'Rbm25', 'Mybbp1a', 'Kctd5', 'Ppp2ca', 'Ruvbl1', 'Pnisr', 'Klhdc3', 'Nt5dc2', 'Wdr4', 'Ndufb11', 'Vps72', 'Sin3a', 'Bzw1', 'Pias2', 'Rfc3', 'Cox4i1', 'Tmem14c', 'Fcf1', 'Samm50', 'Tgs1', 'Mat2a', 'H2afz', 'Zrsr2', 'Prmt5', 'St13', 'Jmjd6', 'Rps18', 'Rpl6', 'Acadm', 'Sap30', 'Glyr1', 'Zfp277', 'Smad4', 'Rpl34', 'Psmc4', 'Arhgap19', 'Arid2', 'Aunip', 'Kif18b', 'Snrpf', 'Exosc8', 'B9d1', 'Wdr77', 'Umps', 'Ubald2', 'Aco2', 'Phf5a', 'Ndufs6', 'Ss18', 'Eef1akmt1', 'Cox7b', '2610318N02Rik', 'Rps19bp1', 'Ndufs8', 'Wdr12', 'Rpl41', 'Melk', 'Prpf4', 'Znhit3', 'Atp5j', 'Srm', 'Dbnl', 'Ndufv1', 'Chd4', 'Ubxn1', 'Tdp2', 'Nelfcd', 'Ngrn', 'Mcl1', 'Slc25a3', 'Ddx39', 'Rpl37', 'Hnrnpa2b1', 'Thap11', 'Hpf1', 'Ubtf', 'Ndufs7', 'Chtop', 'Phc1', 'Emg1', 'Lage3', 'Ppm1g', 'Wdr43', 'Ppp1ca', 'Ppp2r1a', 'Mrps17', 'Cycs', 'Wdr75', 'Ddx42', 'Cct8', 'Aasdhppt', 'Nop9', 'Brd8', 'Maea', 'Coq5', 'Ppia', 'Adss', 'Ddx21', 'Npm3', 'Ttc5', 'Rpl22l1', 'Mrpl22', 'Timm44', 'Rbm17', 'Akirin2', 'Mrpl58', 'Rps28', 'Usf1', 'Eif3h', 'Ssb', 'Usp48', 'Kif15', 'Mlf2', 'Ptpn2', 'Mrpl37', 'Elof1', 'Aqr', 'Park7', 'Tex10', 'Impdh2', 'Atp5h', 'Ctbp2', 'Dnajc7', 'Surf2', 'Rpl32', 'Gm10036', 'Poldip3', 'Mrpl18', 'Psmg1', 'Slc38a2', 'Thop1', 'Sephs1', 'Nop2', 'Rpl13', 'Gnl2', 'Gars', 'Zfp428', 'Knl1', 'Rbm3', 'Rnf5', 'Skp1a', 'Rtf1', 'Mplkip', 'Nob1', 'U2surp', 'Phf20', 'Alyref', '2810004N23Rik', 'Utp23', 'Abhd17c', 'Fkbp4', 'Tmem165', 'Tra2a', 'Ostc', 'Gapdh', 'Nabp2', 'Naa50', 'Clp1', 'Rbm22', 'Larp1', 'Thoc3', 'Zwilch', 'Smc2', 'Nip7', 'Ythdf2', 'Gspt1', 'Kif22', 'Spc24', 'Eif4a3', 'Mrto4', 'Snrpa', 'Vcp', 'Nsa2', 'Rbm39', 'Srsf9', 'Prpf31', 'Gtpbp4', 'Zdbf2', 'Psma2', 'Chaf1a', 'Nup43', 'Med19', 'Cep78', 'Gm8186', 'Utp4', 'Pfkl', 'Cox6c', 'Nfu1', 'Rangrf', 'Rrp12', 'Grk6', 'Senp3', 'Rpl12', 'Tkt', 'Trim27', '2010107E04Rik', 'Rpl35a', 'Fkbp2', 'Itpa', 'Hmgn5', 'Dhx15', 'Thyn1', 'Haspin', 'Srsf6', 'Ddx10', 'Ncbp1', 'Eif3i', 'Cs', 'Hnrnpa0', 'Ndufa9', 'Rabggtb', 'Srsf4', 'Idh3g', 'Mrps9', 'Copz1', 'Kif18a', 'Orc3', 'Elp3', 'Ccnh', 'Blmh', 'Nosip', 'Siva1', 'Nde1', 'BC005561', 'Aspm', 'Dkc1', 'Abcf1', 'Naa35', 'Sf3b2', 'Dars', 'Srsf11', 'Mrps35', 'Lsm12', 'Phb2', 'Nae1', 'Trim71', 'Cenpw', 'Idh3a', 'Cep295', 'Ndufa5', 'Snrpd3', 'Rbmx2', 'Rplp2', 'Rnmt', 'Ciapin1', 'Hikeshi', 'Mcm3', 'Uqcrc2', 'Rps2', 'Atxn10', 'Nme6', 'Atic', 'Dap3', 'Ddb1', 'Yeats4', 'Polr2f', 'Pcnt', 'Cct7', 'Racgap1', 'Krr1', 'Rps11', 'Med25', 'Mdh2', 'Csnk1a1', 'Eef1b2', 'Rpl7a', 'Timm22', 'Tnpo3', 'Tecr', 'Smchd1', 'Rcc2', 'Pinx1', 'Mtmr14', 'Pbx2', 'Slc24a5', 'H2afx', 'Gpatch4', 'Ptges3', 'Mpp6', 'Ormdl2', 'Pcbp4', 'Ubr5', 'Farsa', 'Rpl9-ps6', 'Eno1', 'Pdia6', 'Psma7', 'Cdc26', 'Atrx', 'Eif6', 'Gga2', 'C1qbp', 'Kdm5b', 'Nufip1', 'Bptf', 'Mrpl21', 'Eif4enif1', 'Mrpl45', 'Dis3', 'Dgcr6', 'Vbp1', 'Mphosph6', 'Hnrnpa1', 'Akap8', 'Eif2b1', 'Fbxo5', 'Dcps', 'Seh1l', 'Uqcr10', 'Atf1', 'Mrpl12', 'Srrm1', 'Ndufb8', 'Rps19', 'Fzr1', 'Psmb3', 'Fh1', 'Eif4g2', 'Sec61b', 'Nap1l1', 'Gcsh', 'Eef2', 'Dnmt3b', 'Hsp90aa1', 'Ranbp1', 'Yme1l1', 'Prrc2c', 'Ftsj3', 'Nfyb', 'Cul3', 'Ubap2', 'Ppan', 'Pabpc4', 'Guk1', 'Snu13', 'Tceal9', 'Mrps16', 'Ppdpf', 'Hprt', 'Zmat2', 'Hmgn2', 'Ezh2', 'Cul2', 'Chchd4', 'Rbm28', 'Tnks2', 'Traip', 'Trim33', 'Caprin1', 'Urod', 'Rsl24d1', 'Ints11', 'Mrpl17', 'Pa2g4', 'Nr6a1', 'Esf1', 'Cpsf6', 'Aifm1', 'Eif3k', 'Cacybp', 'Pum1', 'Gpbp1', 'Swi5', 'Wapl', 'Gatad2a', 'Snrpb', 'Wdr89', 'Rab3ip', 'Setd5', 'mt-Nd1', 'Nup85', 'Nat10', 'Lmnb1', 'Tfap4', 'Zfp292', 'Mcm7', 'Ccar1', 'Rsl1d1', 'Ndufs1', 'Rpl37a', 'Bex1', 'Ppig', 'Bms1', 'Supt4a', 'Sgo1', 'Nup37', 'Ube2e1', 'Psmb7', 'Exosc9', 'Smarca5', 'Ube2m', 'Mum1', 'Atp5g1', 'Ywhaq', 'Sf3b5', 'Thg1l', 'Echs1', 'Prmt7', 'Mark3', 'Ccdc34', 'Ptdss2', 'Srp9', 'Utp11', 'Psma1', 'Ak2', 'Ybx3', 'Pym1', 'Ndufb3', 'Mtfr1', 'Mpdu1', 'Dicer1', 'Ska1', 'Sub1', 'Cdv3', 'Sephs2', 'Epcam', 'Hspa9', 'Tmem230', 'Psmc3ip', 'Csnk2b', 'Tmem11', 'Rps17', 'Kif20a', 'Rrp9', 'Rpp30', 'Fabp5', 'Rcc1', 'Dcakd', 'Cwc15', 'Ptma', 'Ngdn', 'Tmeff1', 'Skiv2l2', 'Vdac1', 'Parp1', 'Rps20', 'Dars2', 'Dnajc11', 'Igf2bp1', 'Ube2j2', 'Ddx39b', 'Srsf2', 'Ints13', 'Nedd4', 'Dpp3', 'Vdac3', 'Mif', 'Dtd1', 'Nup35', 'Eif2b5', 'Ppp2r2d', 'Eif4e', 'Hnrnpr', 'Ppih', 'Matr3', 'Hmgcs1', 'Prelid3b', 'Lars', 'Mdn1', 'Bola2', 'Dnajc2', 'Las1l', 'Eif3e', 'Lsm2', 'Tpi1', 'Eif2a', 'Gng5', 'Baz2a', 'Hint1', 'Zfp706', 'H2afy', 'Tex30', 'Cpsf2', 'Znrf2', 'Hnrnpul2', 'Tsr1', 'Uba2', 'Rps24', 'Tmem258', 'Dus1l', 'Atp5c1', 'Slc25a5', 'Denr', 'Thrap3', 'Jarid2', 'Esco2', 'Cad', 'Fam136a', 'Otud6b', 'Rtcb', 'Usp34', 'Timm50', 'Atp5f1', 'Polr2e', 'Cdk12', 'Ndufs2', 'Gemin6', 'Naca', 'Hat1', 'Otud4', 'Sgo2a', 'Jpt1', 'Crebbp', 'Ptcd2', 'Supv3l1', 'Ube2a', 'Psme3', 'Lap3', 'Prmt3', 'Nucks1', 'Gpn1', 'Csrp2', 'Rps3', 'Utp14a', 'Rpl23', 'Tcf3', 'Nup54', 'Pycr2', 'Nono', 'Immt', 'Galk1', 'Rbpms2', 'Smc6', 'Dbf4', 'Mrpl1', 'Metap2', 'Rpl7l1', 'Atp5g3', 'Ankrd11', 'Lsm8', 'Rif1', 'Adh5', 'Hunk', 'Adgrl1', 'Eif5a', 'Psma5', 'Smyd5', 'Sdha', 'Rpl9', 'Tgif2', 'Nop56', 'Wasf1', 'Ccna2', 'Rnf34', 'Polr3k', 'Pqbp1', 'Ptpa', 'Rrp1b', 'Timm13', 'Nmral1', 'Prpf38b', 'Pgp', 'Wbp11', 'Cdk2ap1', 'Pelp1', 'Psmc3', 'Cops8', 'Haus7', '9130401M01Rik', 'Rps15', 'Uck2', 'Qrich1', 'Cdkn2aipnl', 'Ddx27', 'Dazap1', 'Mrps18c', 'Hmgxb4', 'Rpl27', 'Ubb', 'Nxt1', 'Nsd1', 'Afg3l1', 'Mrpl34', 'Arid1a', 'Tax1bp1', 'Asxl1', 'Cinp', 'Chchd2', 'Pdcd10', 'Ccnf', 'Smpd4', 'Ppp2r5d', 'Cct5', 'Noc2l', 'Scaf11', 'Rpn1', 'Sdhd', 'Ppil1', 'Gtf2e2', 'Hnrnpm', 'Ywhae', 'Noc4l', 'Snrnp200', 'Pfn1', 'Rpl19', 'Bub3', 'Spcs2', 'Tomm20', 'Eml4', 'Med30', 'Eef1a1', 'Lsm5', 'Aldh9a1', 'Sh3gl1', 'Mrps30', 'Ddx3x', 'Snrnp25', 'Tomm40', 'Farsb', 'Polr2g', 'Nup50', 'Rnf4', 'Rps10', 'Znrd1', 'Gtf2a2', 'Eif5b', 'Mycbp', 'Usmg5', 'Armc1', 'Gins4', 'Thoc2', 'Nsmce2', 'Morf4l2', 'Cdca5', 'March5', 'Cisd1', 'Mrpl13', 'Mrpl50', 'Ddx49', 'Ndufa11', 'Rack1', 'Txnl4a', 'Smn1', 'Eif1a', 'Rae1', 'Gldc', 'Nop53', 'Rps23', 'Gadd45gip1', 'Mad2l1', 'Rnf7', 'Vrk3', 'Zranb2', 'Sf3b6', 'Ptbp1', 'Trim6', 'Dek', 'Gtf2h4', 'Ddx18', 'Asf1a', 'Sms', 'Tmem97', 'Ndufa10', 'Ing1', 'Wdr18', 'Csnk2a1', 'Ddx52', 'Elavl1', 'Rpl15', 'Gtf2h3', 'Srsf1', 'Psmc2']}
# no cleaning steps identified way too many cell cycle corr'd genes
# reload our data without MEF's or cleaning
adata = sc.read_h5ad('unprocessed_data_no_mefs_pt6.h5ad')
# lets see what happens if someone excludes too many doublets because they thought more cells were inputted in the 10x run
adata = preprocess_pipeline(adata, exclude_high_ribo = True, ribo_thresh = 35, exclude_high_mt = True, mt_thresh = 3, exclude_doublets = True,
doublet_thresh = 90, exclude_sporad_genes = True,
exclude_bad_genes = True, normalize = True, logT= True, hvg = True, scale = True, comp_pca = True)
Trying to set attribute `.var` of view, copying. Trying to set attribute `.var` of view, copying.
# show the PC plots
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], show=False, size=10)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], show=False, size=10)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], show=False, size=10)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], show=False, size=10)
# this looks pretty bad already
... storing 'phase' as categorical
<AxesSubplot:xlabel='PC1', ylabel='PC4'>
# next we plot and color by each geneset
# naive
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "naive_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'naive_genesets'}, xlabel='PC1', ylabel='PC4'>
# primed
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "primed_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'primed_genesets'}, xlabel='PC1', ylabel='PC4'>
# primitive_streak
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'primitive_streak_genesets'}, xlabel='PC1', ylabel='PC4'>
# mesoderm
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'mesoderm_genesets'}, xlabel='PC1', ylabel='PC4'>
# performs KNN neighbors and then leiden clustering
# note: there are no right or wrong parmaeters to choose when clustering. Just have to pick the ones that are reasonable and give reasonable results.
# would highly suggest playing with the parameters and see how the results differ
n_pcs = 20
n_neighbors = 15
sc.pp.neighbors(adata, n_neighbors=n_neighbors, n_pcs=n_pcs)
sc.tl.leiden(adata, .25)
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "leiden", show=False, size=10, vmax = 1.5)
# the clusetrs here look like the correspond to the ones above but the purple one may be an outlier
# naive is green 2
# primed is orange 1
# primitive is blue 0
# mesoderm is red 3
# we can still id the cell stages here
<AxesSubplot:title={'center':'leiden'}, xlabel='PC1', ylabel='PC4'>
# making a new column in adata.obs dataframe and the assigning cell types
adata.obs['cell_type_label'] = None
adata.obs.loc[adata.obs['leiden'] == '0', 'cell_type_label'] = 'Primitive'
adata.obs.loc[adata.obs['leiden'] == '1', 'cell_type_label'] = 'Primed'
adata.obs.loc[adata.obs['leiden'] == '2', 'cell_type_label'] = 'Naive'
adata.obs.loc[adata.obs['leiden'] == '3', 'cell_type_label'] = 'Mesoderm'
adata.obs.loc[adata.obs['leiden'] == '4', 'cell_type_label'] = 'Other'
# replot with cell type classifiers, should be identical to previous plot but colors moved around
fig, axs = plt.subplots(2,2, figsize=(7,7), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
... storing 'cell_type_label' as categorical
<AxesSubplot:title={'center':'cell_type_label'}, xlabel='PC1', ylabel='PC4'>
# get counts of each cell type
adata.obs['cell_type_label'].value_counts()
Primitive 548 Primed 336 Naive 295 Mesoderm 142 Other 38 Name: cell_type_label, dtype: int64
# phase and cell stages
print('S phase and Naive:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Naive')]))
print('S phase and Primed:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Primed')]))
print('S phase and Primitive:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Primitive')]))
print('S phase and Mesoderm:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Mesoderm')]))
print('S phase and Other:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Other')]))
print('G2M phase and Naive:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Naive')]))
print('G2M phase and Primed:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Primed')]))
print('G2M phase and Primitive:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Primitive')]))
print('G2M phase and Mesoderm:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Mesoderm')]))
print('G2M phase and Other:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Other')]))
# these numbers are pretty similar to the orginial but there are some fluctuations, just lose cells in each cat
S phase and Naive: 130 S phase and Primed: 151 S phase and Primitive: 218 S phase and Mesoderm: 40 S phase and Other: 7 G2M phase and Naive: 134 G2M phase and Primed: 153 G2M phase and Primitive: 241 G2M phase and Mesoderm: 70 G2M phase and Other: 10
# Primitive 562
# Primed 403
# Naive 321
# Mesoderm 145
# Other 35
# S phase and Naive: 136
# S phase and Primed: 184
# S phase and Primitive: 238
# S phase and Mesoderm: 48
# S phase and Other: 7
# G2M phase and Naive: 159
# G2M phase and Primed: 193
# G2M phase and Primitive: 270
# G2M phase and Mesoderm: 78
# G2M phase and Other: 11
# now let's run on function on each cell type (stage of differentiation)
# first subset each diff type
naive_adata = adata[adata.obs['cell_type_label'] == 'Naive']
primed_adata = adata[adata.obs['cell_type_label'] == 'Primed']
primitive_streak_adata = adata[adata.obs['cell_type_label'] == 'Primitive']
mesoderm_adata = adata[adata.obs['cell_type_label'] == 'Mesoderm']
# run our function on each diff type subset
# default pthresh = 0.45 and novel = True
naive_novel_cc_genes = get_cc_genes(naive_adata, cell_cycle_genes)
primed_novel_cc_genes = get_cc_genes(primed_adata, cell_cycle_genes)
primitive_streak_novel_cc_genes = get_cc_genes(primitive_streak_adata, cell_cycle_genes)
mesoderm_novel_cc_genes = get_cc_genes(mesoderm_adata, cell_cycle_genes)
/Users/kevin/opt/anaconda3/lib/python3.8/site-packages/scipy/stats/stats.py:3508: PearsonRConstantInputWarning: An input array is constant; the correlation coefficent is not defined. warnings.warn(PearsonRConstantInputWarning())
# outpur # of novel cc genes and the genes themself for each phase for each cell type (diff type)
print('Naive novel cc genes:', len(naive_novel_cc_genes['S']), 'new S genes;', len(naive_novel_cc_genes['G2M']), 'new G2M genes')
print(naive_novel_cc_genes)
print('')
print('Primed novel cc genes:', len(primed_novel_cc_genes['S']), 'new S genes;', len(primed_novel_cc_genes['G2M']), 'new G2M genes')
print(primed_novel_cc_genes)
print('')
print('Primitive streak novel cc genes:', len(primitive_streak_novel_cc_genes['S']), 'new S genes;',
len(primitive_streak_novel_cc_genes['G2M']), 'new G2M genes')
print(primitive_streak_novel_cc_genes)
print('')
print('Mesoderm novel cc genes:', len(mesoderm_novel_cc_genes['S']), 'new S genes;', len(mesoderm_novel_cc_genes['G2M']), 'new G2M genes')
print(mesoderm_novel_cc_genes)
# 2 more naive g2m
# 5 less primed g2m
# 1 new prim g2m
# 1 new s meso
Naive novel cc genes: 0 new S genes; 10 new G2M genes
{'S': [], 'G2M': ['Jpt1', 'Incenp', 'Plk1', 'Prc1', 'Bub3', 'Arl6ip1', 'Fzr1', 'Ccnf', 'H2afx', 'Tuba1c']}
Primed novel cc genes: 1 new S genes; 8 new G2M genes
{'S': ['Orc6'], 'G2M': ['Ccna2', 'Jpt1', 'Incenp', 'Plk1', 'Prc1', 'Bub3', 'Arl6ip1', 'Tuba1c']}
Primitive streak novel cc genes: 1 new S genes; 22 new G2M genes
{'S': ['Ccne1'], 'G2M': ['Racgap1', 'Kif20a', 'Smc2', 'Arl6ip1', 'Fzr1', 'Kif22', 'Ccnf', 'Dbf4', 'Tuba1c', 'Incenp', 'Prc1', 'Sapcd2', 'H2afx', 'Ccna2', 'Bub1b', 'Bub3', 'Pimreg', 'Sgo2a', 'Jpt1', 'Mis18bp1', 'Plk1', 'Fam83d']}
Mesoderm novel cc genes: 6 new S genes; 24 new G2M genes
{'S': ['Mcm3', 'Chaf1a', 'Dhfr', 'Lig1', 'Orc6', 'Dut'], 'G2M': ['Racgap1', 'Kif20a', 'Smc2', 'Fzr1', 'Nde1', 'Arl6ip1', 'Kif22', 'Ccnf', 'Kpna2', 'Dbf4', 'Tuba1c', 'Incenp', 'Prc1', 'Sapcd2', 'H2afx', 'Ccna2', 'Bub1b', 'Bub3', 'Pimreg', 'Arhgap19', 'Sgo2a', 'Mis18bp1', 'Plk1', 'Fam83d']}
# what happens if we dont exclude high ribo
adata = sc.read_h5ad('unprocessed_data_no_mefs_pt6.h5ad')
adata = preprocess_pipeline(adata, exclude_high_ribo = False, ribo_thresh = 35, exclude_high_mt = True, mt_thresh = 3, exclude_doublets = True,
doublet_thresh = 98, exclude_sporad_genes = True,
exclude_bad_genes = True, normalize = True, logT= True, hvg = True, scale = True, comp_pca = True)
Trying to set attribute `.var` of view, copying.
# show the PC plots
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], show=False, size=10)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], show=False, size=10)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], show=False, size=10)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], show=False, size=10)
# this looks pretty bad already
... storing 'phase' as categorical
<AxesSubplot:xlabel='PC1', ylabel='PC4'>
# next we plot and color by each geneset
# naive
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "naive_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'naive_genesets'}, xlabel='PC1', ylabel='PC4'>
# primed
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "primed_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'primed_genesets'}, xlabel='PC1', ylabel='PC4'>
# primitive_streak
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'primitive_streak_genesets'}, xlabel='PC1', ylabel='PC4'>
# mesoderm
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'mesoderm_genesets'}, xlabel='PC1', ylabel='PC4'>
# performs KNN neighbors and then leiden clustering
# note: there are no right or wrong parmaeters to choose when clustering. Just have to pick the ones that are reasonable and give reasonable results.
# would highly suggest playing with the parameters and see how the results differ
n_pcs = 20
n_neighbors = 15
sc.pp.neighbors(adata, n_neighbors=n_neighbors, n_pcs=n_pcs)
sc.tl.leiden(adata, .25)
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "leiden", show=False, size=10, vmax = 1.5)
# the clusetrs here look like the correspond to the ones above but the purple one may be an outlier
# naive is green 2
# primed is primed 1
# primitive is blue 0
# mesoderm is red 3
# clustering here looks pretty good, similar to the "standard run"
<AxesSubplot:title={'center':'leiden'}, xlabel='PC1', ylabel='PC4'>
# making a new column in adata.obs dataframe and the assigning cell types
adata.obs['cell_type_label'] = None
adata.obs.loc[adata.obs['leiden'] == '0', 'cell_type_label'] = 'Primitive'
adata.obs.loc[adata.obs['leiden'] == '2', 'cell_type_label'] = 'Naive'
adata.obs.loc[adata.obs['leiden'] == '1', 'cell_type_label'] = 'Primed'
adata.obs.loc[adata.obs['leiden'] == '3', 'cell_type_label'] = 'Mesoderm'
adata.obs.loc[adata.obs['leiden'] == '4', 'cell_type_label'] = 'Other'
# replot with cell type classifiers, should be identical to previous plot but colors moved around
fig, axs = plt.subplots(2,2, figsize=(7,7), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
... storing 'cell_type_label' as categorical
<AxesSubplot:title={'center':'cell_type_label'}, xlabel='PC1', ylabel='PC4'>
# get counts of each cell type
adata.obs['cell_type_label'].value_counts()
Primitive 571 Primed 403 Naive 322 Mesoderm 146 Other 39 Name: cell_type_label, dtype: int64
# phase and cell stages
print('S phase and Naive:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Naive')]))
print('S phase and Primed:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Primed')]))
print('S phase and Primitive:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Primitive')]))
print('S phase and Mesoderm:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Mesoderm')]))
print('S phase and Other:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Other')]))
print('G2M phase and Naive:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Naive')]))
print('G2M phase and Primed:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Primed')]))
print('G2M phase and Primitive:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Primitive')]))
print('G2M phase and Mesoderm:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Mesoderm')]))
print('G2M phase and Other:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Other')]))
# slight differences here from orig
S phase and Naive: 148 S phase and Primed: 182 S phase and Primitive: 216 S phase and Mesoderm: 45 S phase and Other: 9 G2M phase and Naive: 143 G2M phase and Primed: 181 G2M phase and Primitive: 257 G2M phase and Mesoderm: 67 G2M phase and Other: 11
# original q4 output
# Primitive 562
# Primed 403
# Naive 321
# Mesoderm 145
# Other 35
# S phase and Naive: 136
# S phase and Primed: 184
# S phase and Primitive: 238
# S phase and Mesoderm: 48
# S phase and Other: 7
# G2M phase and Naive: 159
# G2M phase and Primed: 193
# G2M phase and Primitive: 270
# G2M phase and Mesoderm: 78
# G2M phase and Other: 11
# now let's run on function on each cell type (stage of differentiation)
# first subset each diff type
naive_adata = adata[adata.obs['cell_type_label'] == 'Naive']
primed_adata = adata[adata.obs['cell_type_label'] == 'Primed']
primitive_streak_adata = adata[adata.obs['cell_type_label'] == 'Primitive']
mesoderm_adata = adata[adata.obs['cell_type_label'] == 'Mesoderm']
# run our function on each diff type subset
# default pthresh = 0.45 and novel = True
naive_novel_cc_genes = get_cc_genes(naive_adata, cell_cycle_genes)
primed_novel_cc_genes = get_cc_genes(primed_adata, cell_cycle_genes)
primitive_streak_novel_cc_genes = get_cc_genes(primitive_streak_adata, cell_cycle_genes)
mesoderm_novel_cc_genes = get_cc_genes(mesoderm_adata, cell_cycle_genes)
/Users/kevin/opt/anaconda3/lib/python3.8/site-packages/scipy/stats/stats.py:3508: PearsonRConstantInputWarning: An input array is constant; the correlation coefficent is not defined. warnings.warn(PearsonRConstantInputWarning())
# output # of novel cc genes and the genes themself for each phase for each cell type (diff type)
print('Naive novel cc genes:', len(naive_novel_cc_genes['S']), 'new S genes;', len(naive_novel_cc_genes['G2M']), 'new G2M genes')
print(naive_novel_cc_genes)
print('')
print('Primed novel cc genes:', len(primed_novel_cc_genes['S']), 'new S genes;', len(primed_novel_cc_genes['G2M']), 'new G2M genes')
print(primed_novel_cc_genes)
print('')
print('Primitive streak novel cc genes:', len(primitive_streak_novel_cc_genes['S']), 'new S genes;',
len(primitive_streak_novel_cc_genes['G2M']), 'new G2M genes')
print(primitive_streak_novel_cc_genes)
print('')
print('Mesoderm novel cc genes:', len(mesoderm_novel_cc_genes['S']), 'new S genes;', len(mesoderm_novel_cc_genes['G2M']), 'new G2M genes')
print(mesoderm_novel_cc_genes)
# 3 new for g2m naive
# primed same
# 1 new prim g2m
# 1 new s medo orc6
Naive novel cc genes: 0 new S genes; 11 new G2M genes
{'S': [], 'G2M': ['Jpt1', 'Mis18bp1', 'Incenp', 'Plk1', 'Prc1', 'Bub3', 'Arl6ip1', 'Fzr1', 'Ccnf', 'H2afx', 'Tuba1c']}
Primed novel cc genes: 1 new S genes; 13 new G2M genes
{'S': ['Orc6'], 'G2M': ['Ccna2', 'Jpt1', 'Mis18bp1', 'Incenp', 'Plk1', 'Prc1', 'Bub3', 'Arl6ip1', 'Fzr1', 'Ccnf', 'Fam83d', 'H2afx', 'Tuba1c']}
Primitive streak novel cc genes: 1 new S genes; 22 new G2M genes
{'S': ['Ccne1'], 'G2M': ['Racgap1', 'Kif20a', 'Smc2', 'Arl6ip1', 'Fzr1', 'Kif22', 'Ccnf', 'Dbf4', 'Tuba1c', 'Incenp', 'Prc1', 'Sapcd2', 'H2afx', 'Ccna2', 'Bub1b', 'Bub3', 'Pimreg', 'Sgo2a', 'Jpt1', 'Mis18bp1', 'Plk1', 'Fam83d']}
Mesoderm novel cc genes: 6 new S genes; 24 new G2M genes
{'S': ['Mcm3', 'Chaf1a', 'Dhfr', 'Lig1', 'Orc6', 'Dut'], 'G2M': ['Racgap1', 'Kif20a', 'Smc2', 'Fzr1', 'Nde1', 'Arl6ip1', 'Kif22', 'Ccnf', 'Kpna2', 'Dbf4', 'Tuba1c', 'Incenp', 'Prc1', 'Sapcd2', 'H2afx', 'Ccna2', 'Bub1b', 'Bub3', 'Pimreg', 'Arhgap19', 'Sgo2a', 'Mis18bp1', 'Plk1', 'Fam83d']}
# what happens if we dont exclude high mt
adata = sc.read_h5ad('unprocessed_data_no_mefs_pt6.h5ad')
adata = preprocess_pipeline(adata, exclude_high_ribo = True, ribo_thresh = 35, exclude_high_mt = False, mt_thresh = 3, exclude_doublets = True,
doublet_thresh = 98, exclude_sporad_genes = True,
exclude_bad_genes = True, normalize = True, logT= True, hvg = True, scale = True, comp_pca = True)
Trying to set attribute `.var` of view, copying.
# show the PC plots
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], show=False, size=10)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], show=False, size=10)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], show=False, size=10)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], show=False, size=10)
# this looks pretty bad already
... storing 'phase' as categorical
<AxesSubplot:xlabel='PC1', ylabel='PC4'>
# next we plot and color by each geneset
# naive
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "naive_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "naive_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'naive_genesets'}, xlabel='PC1', ylabel='PC4'>
# primed
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "primed_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "primed_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'primed_genesets'}, xlabel='PC1', ylabel='PC4'>
# primitive_streak
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "primitive_streak_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'primitive_streak_genesets'}, xlabel='PC1', ylabel='PC4'>
# mesoderm
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "mesoderm_genesets", show=False, size=10, vmax = 1.5)
<AxesSubplot:title={'center':'mesoderm_genesets'}, xlabel='PC1', ylabel='PC4'>
# performs KNN neighbors and then leiden clustering
# note: there are no right or wrong parmaeters to choose when clustering. Just have to pick the ones that are reasonable and give reasonable results.
# would highly suggest playing with the parameters and see how the results differ
n_pcs = 20
n_neighbors = 15
sc.pp.neighbors(adata, n_neighbors=n_neighbors, n_pcs=n_pcs)
sc.tl.leiden(adata, .25)
fig, axs = plt.subplots(2,2, figsize=(5,5), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "leiden", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "leiden", show=False, size=10, vmax = 1.5)
# the clusetrs here look like the correspond to the ones above but the purple one may be an outlier
# primed is orange 1
# primitive is blue 0
# mesoderm is green 2
# other is red 3
# clustering here looks pretty different. Looks like high mt skews our cluestering results pretty heavily, red other could be high mt cells?
# not excluding high mt is worse than not excluding high ribo
# no seperation between naive and primed here, so we will have to exclude naive from further analysis
<AxesSubplot:title={'center':'leiden'}, xlabel='PC1', ylabel='PC4'>
# making a new column in adata.obs dataframe and the assigning cell types
adata.obs['cell_type_label'] = None
adata.obs.loc[adata.obs['leiden'] == '0', 'cell_type_label'] = 'Primitive'
adata.obs.loc[adata.obs['leiden'] == '2', 'cell_type_label'] = 'Mesoderm'
adata.obs.loc[adata.obs['leiden'] == '1', 'cell_type_label'] = 'Primed'
adata.obs.loc[adata.obs['leiden'] == '3', 'cell_type_label'] = 'Other'
# replot with cell type classifiers, should be identical to previous plot but colors moved around
fig, axs = plt.subplots(2,2, figsize=(7,7), constrained_layout=True)
sc.pl.pca_scatter(adata, ax=axs[0,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,3", ax=axs[0,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="2,3", ax=axs[1,0], color = "cell_type_label", show=False, size=10, vmax = 1.5)
sc.pl.pca_scatter(adata, components="1,4", ax=axs[1,1], color = "cell_type_label", show=False, size=10, vmax = 1.5)
... storing 'cell_type_label' as categorical
<AxesSubplot:title={'center':'cell_type_label'}, xlabel='PC1', ylabel='PC4'>
# get counts of each cell type
adata.obs['cell_type_label'].value_counts()
Primitive 783 Primed 535 Mesoderm 167 Other 159 Name: cell_type_label, dtype: int64
# phase and cell stages
print('S phase and Naive:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Naive')]))
print('S phase and Primed:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Primed')]))
print('S phase and Primitive:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Primitive')]))
print('S phase and Mesoderm:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Mesoderm')]))
print('S phase and Other:',len(adata.obs[(adata.obs['phase'] =='S') & (adata.obs['cell_type_label'] == 'Other')]))
print('G2M phase and Naive:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Naive')]))
print('G2M phase and Primed:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Primed')]))
print('G2M phase and Primitive:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Primitive')]))
print('G2M phase and Mesoderm:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Mesoderm')]))
print('G2M phase and Other:',len(adata.obs[(adata.obs['phase'] =='G2M') & (adata.obs['cell_type_label'] == 'Other')]))
# number pretty diff here since we dont have naive cells
# this is prob the second worst with no cleaning being the worst
S phase and Naive: 0 S phase and Primed: 247 S phase and Primitive: 328 S phase and Mesoderm: 53 S phase and Other: 10 G2M phase and Naive: 0 G2M phase and Primed: 241 G2M phase and Primitive: 365 G2M phase and Mesoderm: 75 G2M phase and Other: 12
# original q4 output
# Primitive 562
# Primed 403
# Naive 321
# Mesoderm 145
# Other 35
# S phase and Naive: 136
# S phase and Primed: 184
# S phase and Primitive: 238
# S phase and Mesoderm: 48
# S phase and Other: 7
# G2M phase and Naive: 159
# G2M phase and Primed: 193
# G2M phase and Primitive: 270
# G2M phase and Mesoderm: 78
# G2M phase and Other: 11
# now let's run on function on each cell type (stage of differentiation)
# first subset each diff type
other_adata = adata[adata.obs['cell_type_label'] == 'Naive']
primed_adata = adata[adata.obs['cell_type_label'] == 'Primed']
primitive_streak_adata = adata[adata.obs['cell_type_label'] == 'Primitive']
mesoderm_adata = adata[adata.obs['cell_type_label'] == 'Mesoderm']
# run our function on each diff type subset
# default pthresh = 0.45 and novel = True
# exclude naive cuz we dont have any
# naive_novel_cc_genes = get_cc_genes(naive_adata, cell_cycle_genes)
primed_novel_cc_genes = get_cc_genes(primed_adata, cell_cycle_genes)
primitive_streak_novel_cc_genes = get_cc_genes(primitive_streak_adata, cell_cycle_genes)
mesoderm_novel_cc_genes = get_cc_genes(mesoderm_adata, cell_cycle_genes)
/Users/kevin/opt/anaconda3/lib/python3.8/site-packages/scipy/stats/stats.py:3508: PearsonRConstantInputWarning: An input array is constant; the correlation coefficent is not defined. warnings.warn(PearsonRConstantInputWarning())
# output # of novel cc genes and the genes themself for each phase for each cell type (diff type)
# print('Naive novel cc genes:', len(naive_novel_cc_genes['S']), 'new S genes;', len(naive_novel_cc_genes['G2M']), 'new G2M genes')
# print(naive_novel_cc_genes)
# print('')
print('Primed novel cc genes:', len(primed_novel_cc_genes['S']), 'new S genes;', len(primed_novel_cc_genes['G2M']), 'new G2M genes')
print(primed_novel_cc_genes)
print('')
print('Primitive streak novel cc genes:', len(primitive_streak_novel_cc_genes['S']), 'new S genes;',
len(primitive_streak_novel_cc_genes['G2M']), 'new G2M genes')
print(primitive_streak_novel_cc_genes)
print('')
print('Mesoderm novel cc genes:', len(mesoderm_novel_cc_genes['S']), 'new S genes;', len(mesoderm_novel_cc_genes['G2M']), 'new G2M genes')
print(mesoderm_novel_cc_genes)
# no naive so thats a big diff
# primed is the same same as og naive, so primed and naive might be mixed together here
# prim the same as og
# meso has multiple new genes for both phases
Primed novel cc genes: 0 new S genes; 8 new G2M genes
{'S': [], 'G2M': ['Jpt1', 'Incenp', 'Plk1', 'Prc1', 'Bub3', 'Arl6ip1', 'Ccnf', 'Tuba1c']}
Primitive streak novel cc genes: 1 new S genes; 21 new G2M genes
{'S': ['Ccne1'], 'G2M': ['Racgap1', 'Kif20a', 'Smc2', 'Arl6ip1', 'Fzr1', 'Kif22', 'Ccnf', 'Dbf4', 'Tuba1c', 'Incenp', 'Prc1', 'H2afx', 'Ccna2', 'Bub1b', 'Bub3', 'Pimreg', 'Sgo2a', 'Jpt1', 'Mis18bp1', 'Plk1', 'Fam83d']}
Mesoderm novel cc genes: 19 new S genes; 29 new G2M genes
{'S': ['Dhfr', 'Anp32b', 'Snrpd1', 'Paics', 'Mcm7', 'Ptma', 'Ranbp1', 'Eif5a', 'Chaf1a', 'Lig1', 'Ptges3', 'Smc3', 'Rbbp4', 'Mcm3', 'Srsf7', 'Prelid3b', 'Pclaf', 'Nxt1', 'Dut'], 'G2M': ['Racgap1', 'Lsm2', 'Kif20a', 'Smc2', 'Fzr1', 'Nde1', 'Arl6ip1', 'Kif22', 'Ccnf', 'Dbf4', 'Tuba1c', 'Nt5dc2', 'Incenp', 'Prc1', 'Sapcd2', 'Ncapg', 'H2afx', 'Ccna2', 'Bub1b', 'Bub3', 'Pimreg', 'Arhgap19', 'Sgo2a', 'Mis18bp1', 'Plk1', 'Tuba1b', 'Fam83d', 'Lsm3', 'Snrpb']}
# not doing any preprocessing def makes the biggest difference in out results.
# excluding too many doublets leads too many lost 'good' cells
# not excluding high mt is much worse than not excluding high ribo
Write a function that will generate a heatmap of your novel CC genes and that orders and displays cells by predicted phase of CC.
### Bonus mission code, figures and explanatory text goes here and in subsequent cells. Show all code.
# heres our good adata
adata2_refined.obs
| n_genes_by_counts | total_counts | total_counts_ribo | pct_counts_ribo | total_counts_mt | pct_counts_mt | naive_genesets | primed_genesets | primitive_streak_genesets | mesoderm_genesets | mef_genesets | leiden | cell_type_label | S_score | G2M_score | phase | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AAAGGATCATCAGCTA | 6108 | 51696.0 | 11336.0 | 21.928196 | 1206.0 | 2.332869 | 1.462597 | -0.845355 | -0.765111 | -0.494201 | -0.234230 | 2 | Naive | 0.121245 | -0.180180 | S |
| AAGTTCGTCATCCTAT | 6161 | 50670.0 | 10793.0 | 21.300571 | 648.0 | 1.278863 | 1.152509 | -0.663506 | -0.674499 | -0.529671 | -0.144185 | 2 | Naive | 0.153964 | 0.117394 | S |
| AATCACGTCGACGACC | 5920 | 51203.0 | 13795.0 | 26.941782 | 506.0 | 0.988223 | 1.180865 | -0.918670 | -0.720854 | -0.226108 | -0.167448 | 2 | Naive | -0.406983 | 0.231144 | G2M |
| ACAAGCTAGTGTTCAC | 6578 | 54268.0 | 13539.0 | 24.948404 | 979.0 | 1.804010 | 2.070385 | -0.566424 | -0.680331 | -0.382433 | -0.201345 | 2 | Naive | -0.123072 | 0.221507 | G2M |
| ACATTTCCACCCAATA | 494 | 669.0 | 138.0 | 20.627802 | 0.0 | 0.000000 | -0.110276 | -0.376076 | -0.016581 | 0.353827 | -0.058090 | 4 | Other | -0.146778 | -0.585443 | G1 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| TTTCGATGTGCGAACA | 6226 | 47202.0 | 11664.0 | 24.710817 | 746.0 | 1.580442 | -0.553922 | -0.035149 | 0.853431 | -0.111625 | -0.286409 | 0 | Primitive | -0.078648 | -0.012066 | G1 |
| TTTCGATTCCCAAGCG | 5435 | 30923.0 | 7146.0 | 23.109013 | 398.0 | 1.287068 | -0.832274 | 0.272020 | 0.785349 | -0.468100 | -0.022966 | 0 | Primitive | -0.211332 | 0.406195 | G2M |
| TTTGACTGTCACTTCC | 5767 | 35729.0 | 7860.0 | 21.998936 | 538.0 | 1.505780 | -0.604116 | -0.717059 | 0.734134 | 4.251657 | -0.161055 | 3 | Mesoderm | -0.284396 | 0.486331 | G2M |
| TTTGACTGTGCGGATA | 4937 | 23234.0 | 5097.0 | 21.937677 | 326.0 | 1.403116 | -0.396972 | 0.327058 | 1.400823 | -0.116942 | -0.196782 | 0 | Primitive | 0.003583 | -0.001892 | S |
| TTTGGAGCAGGTTCCG | 5024 | 28978.0 | 5820.0 | 20.084202 | 484.0 | 1.670233 | 1.390481 | 0.166589 | -0.682212 | -0.368295 | -0.334538 | 2 | Naive | 0.329304 | 0.126793 | S |
1466 rows × 16 columns
# now let's run on function on each cell type (stage of differentiation)
# first subset each diff type
naive_adata = adata2_refined[adata2_refined.obs['cell_type_label'] == 'Naive']
primed_adata = adata2_refined[adata2_refined.obs['cell_type_label'] == 'Primed']
primitive_streak_adata = adata2_refined[adata2_refined.obs['cell_type_label'] == 'Primitive']
mesoderm_adata = adata2_refined[adata2_refined.obs['cell_type_label'] == 'Mesoderm']
# run our function on each diff type subset
# default pthresh = 0.45 and novel = True
naive_novel_cc_genes = get_cc_genes(naive_adata, cell_cycle_genes)
primed_novel_cc_genes = get_cc_genes(primed_adata, cell_cycle_genes)
primitive_streak_novel_cc_genes = get_cc_genes(primitive_streak_adata, cell_cycle_genes)
mesoderm_novel_cc_genes = get_cc_genes(mesoderm_adata, cell_cycle_genes)
/Users/kevin/opt/anaconda3/lib/python3.8/site-packages/scipy/stats/stats.py:3508: PearsonRConstantInputWarning: An input array is constant; the correlation coefficent is not defined. warnings.warn(PearsonRConstantInputWarning())
# output # of novel cc genes and the genes themself for each phase for each cell type (diff type)
print('Naive novel cc genes:', len(naive_novel_cc_genes['S']), 'new S genes;', len(naive_novel_cc_genes['G2M']), 'new G2M genes')
print(naive_novel_cc_genes)
print('')
print('Primed novel cc genes:', len(primed_novel_cc_genes['S']), 'new S genes;', len(primed_novel_cc_genes['G2M']), 'new G2M genes')
print(primed_novel_cc_genes)
print('')
print('Primitive streak novel cc genes:', len(primitive_streak_novel_cc_genes['S']), 'new S genes;',
len(primitive_streak_novel_cc_genes['G2M']), 'new G2M genes')
print(primitive_streak_novel_cc_genes)
print('')
print('Mesoderm novel cc genes:', len(mesoderm_novel_cc_genes['S']), 'new S genes;', len(mesoderm_novel_cc_genes['G2M']), 'new G2M genes')
print(mesoderm_novel_cc_genes)
# mis18bp1 is new for g2m naive but h2afx is missing
# primed g2m new: kif20a, ccna2, sgo2a
# prim the same
# mesoderm has many new genes for both phases
Naive novel cc genes: 0 new S genes; 8 new G2M genes
{'S': [], 'G2M': ['Jpt1', 'Incenp', 'Plk1', 'Prc1', 'Bub3', 'Arl6ip1', 'Ccnf', 'Tuba1c']}
Primed novel cc genes: 1 new S genes; 13 new G2M genes
{'S': ['Orc6'], 'G2M': ['Ccna2', 'Jpt1', 'Mis18bp1', 'Incenp', 'Plk1', 'Prc1', 'Bub3', 'Arl6ip1', 'Fzr1', 'Ccnf', 'Fam83d', 'H2afx', 'Tuba1c']}
Primitive streak novel cc genes: 1 new S genes; 21 new G2M genes
{'S': ['Ccne1'], 'G2M': ['Racgap1', 'Kif20a', 'Smc2', 'Arl6ip1', 'Fzr1', 'Kif22', 'Ccnf', 'Dbf4', 'Tuba1c', 'Incenp', 'Prc1', 'Sapcd2', 'H2afx', 'Ccna2', 'Bub1b', 'Bub3', 'Sgo2a', 'Jpt1', 'Mis18bp1', 'Plk1', 'Fam83d']}
Mesoderm novel cc genes: 5 new S genes; 24 new G2M genes
{'S': ['Mcm3', 'Chaf1a', 'Dhfr', 'Lig1', 'Dut'], 'G2M': ['Racgap1', 'Kif20a', 'Smc2', 'Fzr1', 'Nde1', 'Arl6ip1', 'Kif22', 'Ccnf', 'Kpna2', 'Dbf4', 'Tuba1c', 'Incenp', 'Prc1', 'Sapcd2', 'H2afx', 'Ccna2', 'Bub1b', 'Bub3', 'Pimreg', 'Arhgap19', 'Sgo2a', 'Mis18bp1', 'Plk1', 'Fam83d']}
set([1,2,3,3,4]+[1,5,7,4,10])
{1, 2, 3, 4, 5, 7, 10}
# get all the unique novel cc genes cuz these are what we want to use for our heatmap, we can sum and use a set for this
all_unique_novel_cc_genes = set(naive_novel_cc_genes['S'] + naive_novel_cc_genes['G2M'] + primed_novel_cc_genes['S'] +primed_novel_cc_genes['G2M'] +
primitive_streak_novel_cc_genes['S'] + primitive_streak_novel_cc_genes['G2M'] +
mesoderm_novel_cc_genes['S'] + mesoderm_novel_cc_genes['G2M'])
all_unique_novel_cc_genes
{'Arhgap19',
'Arl6ip1',
'Bub1b',
'Bub3',
'Ccna2',
'Ccne1',
'Ccnf',
'Chaf1a',
'Dbf4',
'Dhfr',
'Dut',
'Fam83d',
'Fzr1',
'H2afx',
'Incenp',
'Jpt1',
'Kif20a',
'Kif22',
'Kpna2',
'Lig1',
'Mcm3',
'Mis18bp1',
'Nde1',
'Orc6',
'Pimreg',
'Plk1',
'Prc1',
'Racgap1',
'Sapcd2',
'Sgo2a',
'Smc2',
'Tuba1c'}
adata2_refined.obs.sort_values('phase')
| n_genes_by_counts | total_counts | total_counts_ribo | pct_counts_ribo | total_counts_mt | pct_counts_mt | naive_genesets | primed_genesets | primitive_streak_genesets | mesoderm_genesets | mef_genesets | leiden | cell_type_label | S_score | G2M_score | phase | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AGTCATGTCCTTACCG | 4782 | 21324.0 | 4901.0 | 22.983494 | 397.0 | 1.861752 | -0.032396 | 0.820778 | 1.074630 | 0.409661 | -0.187428 | 0 | Primitive | -0.169954 | -0.088506 | G1 |
| CACTGGGTCTCCCAAT | 507 | 672.0 | 141.0 | 20.982143 | 8.0 | 1.190476 | -0.074815 | -0.436716 | -0.234773 | 0.097695 | -0.007134 | 4 | Other | -0.345997 | -0.287390 | G1 |
| GGGCTCACAGACTGCC | 3739 | 15747.0 | 4717.0 | 29.954914 | 313.0 | 1.987680 | -0.177459 | -0.100961 | 0.836455 | -0.152566 | -0.107768 | 0 | Primitive | -0.558101 | -0.790026 | G1 |
| GGGCTACTCCATTGGA | 4658 | 24148.0 | 5694.0 | 23.579594 | 407.0 | 1.685440 | 1.172359 | -0.886349 | -0.658662 | -0.464932 | -0.283386 | 2 | Naive | -0.336283 | -0.022090 | G1 |
| GGGCTACTCACTTATC | 4903 | 22268.0 | 4510.0 | 20.253279 | 339.0 | 1.522364 | -0.738347 | 0.029623 | 1.035044 | 0.235327 | -0.316925 | 0 | Primitive | -0.255715 | -0.632524 | G1 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| CTGCAGGTCCCAAGCG | 4947 | 27912.0 | 6187.0 | 22.166092 | 361.0 | 1.293351 | -0.757755 | -0.055371 | 1.897916 | 0.352576 | -0.207423 | 0 | Primitive | 0.442471 | -0.110176 | S |
| CTGCATCTCGAGCACC | 6158 | 41973.0 | 11106.0 | 26.459867 | 611.0 | 1.455698 | 0.213572 | 1.007073 | -0.712232 | -0.109063 | -0.095686 | 0 | Primitive | 0.404621 | -0.161070 | S |
| CTGCCATAGCTGACCC | 5350 | 31833.0 | 7617.0 | 23.927998 | 335.0 | 1.052367 | -0.511868 | -0.093552 | 1.632817 | 0.001976 | -0.106823 | 0 | Primitive | 0.300656 | 0.005791 | S |
| CTGCTCACATGAAGCG | 3146 | 14600.0 | 4414.0 | 30.232876 | 326.0 | 2.232877 | -0.189631 | 0.376734 | 0.596491 | 0.444766 | -0.083775 | 0 | Primitive | 0.170024 | -0.298956 | S |
| TTTGGAGCAGGTTCCG | 5024 | 28978.0 | 5820.0 | 20.084202 | 484.0 | 1.670233 | 1.390481 | 0.166589 | -0.682212 | -0.368295 | -0.334538 | 2 | Naive | 0.329304 | 0.126793 | S |
1466 rows × 16 columns
adata2_refined_x_df = adata2_refined.to_df() # covert to df
adata2_refined_x_df['phase'] = adata2_refined.obs['phase'] # add the phase column so we can sort the df by phase
adata2_refined_x_df_sorted = adata2_refined_x_df.sort_values('phase') # sort the df by phase
adata2_refined_x_df_sorted
| Xkr4 | Sox17 | Mrpl15 | Rgs20 | Npbwr1 | 4732440D04Rik | Gm26901 | Sntg1 | Mybl1 | Vcpip1 | ... | Mid1 | Gm21887 | Zfy1 | Uty | Ddx3y | Uba1y | Eif2s3y | Gm29650 | Gm47283 | phase | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AGTCATGTCCTTACCG | -0.156202 | -0.144076 | 0.949543 | -0.117874 | -0.057938 | -0.105507 | -0.156794 | -0.049548 | -0.483387 | -0.658976 | ... | -0.259857 | -0.216697 | -0.056427 | -0.383803 | -0.611755 | -0.080264 | 1.646011 | -0.081604 | 0.413644 | G1 |
| CACTGGGTCTCCCAAT | -0.156202 | -0.144076 | -1.163925 | -0.117874 | -0.057938 | -0.105507 | -0.156794 | -0.049548 | -0.483387 | -0.658976 | ... | -0.259857 | -0.216697 | -0.056427 | -0.383803 | -0.611755 | -0.080264 | -0.978563 | -0.081604 | -2.233459 | G1 |
| GGGCTCACAGACTGCC | -0.156202 | -0.144076 | 0.559243 | -0.117874 | -0.057938 | -0.105507 | -0.156794 | -0.049548 | 2.609551 | -0.658976 | ... | -0.259857 | 7.478729 | -0.056427 | -0.383803 | -0.611755 | -0.080264 | -0.978563 | -0.081604 | -0.998551 | G1 |
| GGGCTACTCCATTGGA | -0.156202 | -0.144076 | -0.011565 | -0.117874 | -0.057938 | -0.105507 | -0.156794 | -0.049548 | -0.483387 | 1.067121 | ... | -0.259857 | -0.216697 | -0.056427 | -0.383803 | -0.611755 | -0.080264 | -0.978563 | -0.081604 | -0.046508 | G1 |
| GGGCTACTCACTTATC | -0.156202 | -0.144076 | 1.451487 | -0.117874 | -0.057938 | -0.105507 | -0.156794 | -0.049548 | -0.483387 | -0.658976 | ... | -0.259857 | -0.216697 | -0.056427 | 2.506490 | -0.611755 | -0.080264 | -0.978563 | -0.081604 | -0.802186 | G1 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| CTGCAGGTCCCAAGCG | -0.156202 | -0.144076 | -1.163925 | -0.117874 | -0.057938 | -0.105507 | -0.156794 | -0.049548 | -0.483387 | -0.658976 | ... | -0.259857 | -0.216697 | -0.056427 | 2.062944 | -0.611755 | -0.080264 | 0.979618 | -0.081604 | 1.016900 | S |
| CTGCATCTCGAGCACC | -0.156202 | -0.144076 | -1.163925 | -0.117874 | -0.057938 | -0.105507 | -0.156794 | -0.049548 | 1.899123 | -0.658976 | ... | -0.259857 | -0.216697 | -0.056427 | -0.383803 | -0.611755 | -0.080264 | -0.978563 | -0.081604 | 0.767596 | S |
| CTGCCATAGCTGACCC | -0.156202 | -0.144076 | 0.960363 | -0.117874 | -0.057938 | -0.105507 | -0.156794 | -0.049548 | -0.483387 | 0.709133 | ... | -0.259857 | -0.216697 | -0.056427 | -0.383803 | -0.611755 | -0.080264 | -0.329572 | -0.081604 | -0.711088 | S |
| CTGCTCACATGAAGCG | -0.156202 | -0.144076 | 0.662583 | -0.117874 | -0.057938 | -0.105507 | -0.156794 | -0.049548 | -0.483387 | -0.658976 | ... | -0.259857 | -0.216697 | -0.056427 | -0.383803 | -0.611755 | -0.080264 | -0.978563 | -0.081604 | -0.162216 | S |
| TTTGGAGCAGGTTCCG | -0.156202 | -0.144076 | 1.489363 | -0.117874 | -0.057938 | -0.105507 | -0.156794 | -0.049548 | 1.228369 | 0.769509 | ... | -0.259857 | -0.216697 | -0.056427 | -0.383803 | 2.385847 | -0.080264 | 1.181150 | -0.081604 | -0.656986 | S |
1466 rows × 16101 columns
# subset just the unique novel cc genes
data_hmap = adata2_refined_x_df_sorted[np.intersect1d(adata2_refined_x_df_sorted.columns, list(all_unique_novel_cc_genes))]
data_hmap
| Arhgap19 | Arl6ip1 | Bub1b | Bub3 | Ccna2 | Ccne1 | Ccnf | Chaf1a | Dbf4 | Dhfr | ... | Nde1 | Orc6 | Pimreg | Plk1 | Prc1 | Racgap1 | Sapcd2 | Sgo2a | Smc2 | Tuba1c | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AGTCATGTCCTTACCG | 0.797738 | 0.556211 | 0.235025 | 0.672556 | 0.297230 | -0.085525 | 0.157262 | 1.172690 | 0.251656 | 1.510753 | ... | -1.209913 | 1.579884 | 0.243657 | -0.542861 | -1.135931 | 0.834583 | 0.572187 | -0.086691 | -0.341765 | 0.376314 |
| CACTGGGTCTCCCAAT | -0.771889 | -2.698093 | -1.475651 | -2.386335 | -2.330642 | -1.910629 | -1.450460 | -1.588002 | -2.087965 | -2.082458 | ... | -1.209913 | -2.223166 | -0.968530 | 3.865805 | -1.135931 | -1.461866 | -0.859547 | -1.166515 | -2.620221 | -1.890287 |
| GGGCTCACAGACTGCC | -0.771889 | -1.092912 | -0.080891 | 0.447076 | -2.330642 | -0.947494 | -1.450460 | -0.131143 | -0.853312 | -0.756808 | ... | -1.209913 | -0.100005 | -0.968530 | -1.392149 | -1.135931 | -1.461866 | -0.859547 | -1.166515 | -1.417845 | -1.890287 |
| GGGCTACTCCATTGGA | -0.771889 | 0.787855 | 1.330165 | 0.282099 | -0.356204 | -0.821373 | -0.573856 | -1.588002 | -0.255091 | 0.265190 | ... | -0.173829 | -0.249463 | -0.968530 | 0.324989 | 1.152422 | -0.500432 | 0.444476 | 2.365890 | 0.048253 | 1.660975 |
| GGGCTACTCACTTATC | -0.771889 | -1.533101 | -0.516273 | 0.079396 | -0.638442 | -0.794344 | -1.450460 | 0.100514 | -2.087965 | -0.546015 | ... | -1.209913 | 0.180082 | -0.968530 | -1.392149 | -1.135931 | -1.461866 | 1.400475 | -1.166515 | -1.793173 | -1.890287 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| CTGCAGGTCCCAAGCG | 0.472903 | 0.381073 | -1.475651 | 0.450510 | 0.299874 | 1.210167 | -0.137347 | 1.075088 | -1.369041 | 0.037654 | ... | -0.307776 | 1.276211 | -0.007206 | -0.233433 | 0.376789 | -0.624728 | -0.859547 | 0.306730 | -0.422317 | 0.022668 |
| CTGCATCTCGAGCACC | -0.771889 | -0.360223 | -0.870825 | -0.606783 | -0.680520 | 0.920036 | -0.440728 | 0.827495 | 0.645343 | 1.268481 | ... | -0.538073 | 0.192886 | -0.252612 | -0.890559 | -0.642650 | 0.041273 | -0.013964 | -0.528770 | 0.633267 | -0.119968 |
| CTGCCATAGCTGACCC | 0.361228 | 0.035881 | 0.243782 | 0.106824 | 0.815247 | -1.022772 | -0.755662 | 1.184445 | 0.261618 | 0.185489 | ... | 0.218292 | 1.091811 | 0.553377 | 0.033798 | 0.810180 | -0.136563 | -0.859547 | 0.189209 | -0.332063 | -0.787655 |
| CTGCTCACATGAAGCG | -0.771889 | -1.012194 | 0.002754 | -1.111870 | 0.973624 | 0.125865 | -0.061030 | 0.855506 | 0.940939 | 0.140980 | ... | 0.432297 | 0.006760 | -0.968530 | -1.392149 | -1.135931 | 0.062022 | -0.859547 | -1.166515 | -0.603543 | 1.374997 |
| TTTGGAGCAGGTTCCG | 1.957157 | 0.635439 | 0.304888 | -0.265498 | 0.995850 | 2.091057 | 0.567905 | 0.271811 | 1.068371 | -2.082458 | ... | -0.352470 | 0.611270 | -0.968530 | 0.388894 | -0.506376 | 0.373451 | -0.859547 | 0.242098 | 0.298834 | -0.048533 |
1466 rows × 32 columns
len(all_unique_novel_cc_genes)
32
# plot the heatmap
sns.set(rc = {'figure.figsize':(15,8)})
sns.set(font_scale=.5)
sns.heatmap(data_hmap, cmap='PiYG', vmax=4) # nice
<AxesSubplot:>